{"_id":"remoteclaw","_rev":"1440-505c533424f81044900862a47ebed1d7","name":"remoteclaw","dist-tags":{"latest":"0.7.0","next":"0.8.0-next.20260808060554.be577e5"},"versions":{"0.0.0":{"name":"remoteclaw","version":"0.0.0","keywords":["ai","agent","middleware","remoteclaw"],"author":{"name":"Alexey Pelykh"},"license":"AGPL-3.0","_id":"remoteclaw@0.0.0","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"dist":{"shasum":"020e6552830ec1c9eba0b1736d99e3b649ec156f","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.0.0.tgz","fileCount":2,"integrity":"sha512-WgVeCcde2JyDElcFHof+6eFQKUJo3RBtnc5KfUjraeYB/OfRaNN52pjIYxVszwa+/cJy9noI6NkUz+nuSx1SGQ==","signatures":[{"sig":"MEUCIG/VIx3EfSPZBFBS+STWQ6Wj+gkWF1IbpHZ+sxdiRfsBAiEAurA6zHC3FknzvW5eaES72H4tc+KvE54st1IXbZ7ME8Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":692},"main":"index.js","gitHead":"7706358aa9f04eed87e51e4b9801d09eb9dfdf96","_npmUser":{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.8.0","description":"Universal AI agent middleware — placeholder, real package coming soon","directories":{},"_nodeVersion":"25.6.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.0.0_1770817068422_0.3872664027325443","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.ee53c53":{"name":"remoteclaw","version":"0.1.0-next.ee53c53","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"MIT","_id":"remoteclaw@0.1.0-next.ee53c53","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e95b53c145ada47a851252bf25a8bf29afab10e7","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.ee53c53.tgz","fileCount":2113,"integrity":"sha512-Ti5G+fW0ISp1C8fPz2u0WPgF1PzYHoKMt44VqVdiLBFubs694k6Cns5bHCExF1uLTLgcFqWaYxyYy66DKYL9zg==","signatures":[{"sig":"MEYCIQCagqA8ySUg/s9Ihtq7KcqWQleNluzvKovAAvgesP6iPwIhAJeDrAle59BTDvQUvuMwUrpzNDnEM5TW3qoMVWrnfmmf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.ee53c53","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23017647},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"ee53c536f14f80b46317a350251549b937b5a27d","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.ee53c53_1772844454518_0.4768456946538062","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.c403049":{"name":"remoteclaw","version":"0.1.0-next.c403049","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"MIT","_id":"remoteclaw@0.1.0-next.c403049","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"0f1c1032faf555e8f46d1e7283df9f09b2dfeb86","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.c403049.tgz","fileCount":2113,"integrity":"sha512-2tJPc8kyr5fwXTKh0MqQ59BUhbIOxovlDFhTlPxwyIfEGJdQT1o9QIAOufe+1B5uDp8pqGg77400jmofMHz/9g==","signatures":[{"sig":"MEYCIQCk5wWxCxGq1Chv0SQvStFkOwtCEIsXRh1+NVFUA7WFXQIhAKB+ywzaiYHi7eKp1+q+GbQ7i9AgYRqZpKYVM9JisPk+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.c403049","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23017643},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"c4030498d40635ae267222467fd078eca0055d3a","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.c403049_1772845455543_0.9798097749781884","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.ee567fa":{"name":"remoteclaw","version":"0.1.0-next.ee567fa","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"MIT","_id":"remoteclaw@0.1.0-next.ee567fa","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d98b6608b60f8687e59984f304e8af57c03ef479","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.ee567fa.tgz","fileCount":2113,"integrity":"sha512-ELH5XKE2DmGSpaH+irkU5vglJzQAQvYUxnKsc9PEFDkYgsKvXWm29B/KLxeIDYEe9pRrBTVz8Cm6XZqWVi6/Jw==","signatures":[{"sig":"MEUCIQDQAphxXQA1Pj7RAeX9AORp9i3PIyqi4ZnRVEvVYcudmwIgCRL7jhfjUbFKqATwEEoam7yqt0UCE6CNW7plk3PacFA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.ee567fa","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23020066},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"ee567fa5b7e856ce6ed4b6d6bd4cf1bdb9950dad","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.ee567fa_1772846069677_0.20336781245377256","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.7706bc4":{"name":"remoteclaw","version":"0.1.0-next.7706bc4","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"MIT","_id":"remoteclaw@0.1.0-next.7706bc4","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"106018cd56b879d6473ce9bab89e3ae1c56a161a","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.7706bc4.tgz","fileCount":2113,"integrity":"sha512-HsXomhJVk5BGr0EA0tWcMuvb0Oy3uw1mcUdgbyUrfz7rrwRm+tzvvsJX4KpSfGhJdSo2nlQ2KqMN6OwEn8MndQ==","signatures":[{"sig":"MEUCIBZSsEAmWiJ9IyaOPN7miPLlal/T2Mh6KjaojQNbTfaXAiEAi7TzWBSfBuu7hxsp1zpFdGJpFdkHFQynSfNQeuviZKo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.7706bc4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23018018},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"7706bc40d248f0f1ed7771fda06ee93ac251ad2d","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.7706bc4_1772866717091_0.6387339370536251","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.aa1fa55":{"name":"remoteclaw","version":"0.1.0-next.aa1fa55","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"MIT","_id":"remoteclaw@0.1.0-next.aa1fa55","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"8da96cb52fe50e0ffc9f36a439f8f296e2546ac7","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.aa1fa55.tgz","fileCount":2113,"integrity":"sha512-vvD2DxIoRafjZVmEd5g8iUvF/+0ifFHov4OHUMc1f7JKpQ/iDas87UOd9FvEL5KbQBRVYIqqMurxpYkt8sR9rg==","signatures":[{"sig":"MEQCIDtf+eFCjCISFmb+a5H6fogC/MfF+zFGdICEoQgeP8LEAiBqQ020CC4ZqGqPnHZ6A1a262Ez0PSiWA0RUWbfXGKSpg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.aa1fa55","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23017642},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"aa1fa55d8a6b4d7f50270b29758ae90020b31ae9","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.aa1fa55_1772871503299_0.8192885547084325","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.5970299":{"name":"remoteclaw","version":"0.1.0-next.5970299","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"MIT","_id":"remoteclaw@0.1.0-next.5970299","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"ad22191904ffe2116c0527905ece126a975215d2","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.5970299.tgz","fileCount":2113,"integrity":"sha512-sDPUReDd9LlHEV5PBUsYv2pr1Qu2NjIYyPRr1NUO6LwtLeJSyyzrB2n8zX0Yrf1OICk3YCH2z8mzdskGSna/8Q==","signatures":[{"sig":"MEYCIQDp0HvGhlZvL3iBsWzgaW+LTaf78PLCiGmrQ4qwFOdGcgIhAIivvK9p/BVLZl7E8EZLVYn49tu4EI9wl0jeG1pKBGcO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.5970299","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23017650},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"597029973e6618960c9d7587ca3f91ba020cc2ee","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.5970299_1772882778218_0.7883056217516404","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.049f396":{"name":"remoteclaw","version":"0.1.0-next.049f396","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.049f396","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e7fada930ffaf1e5275801fcebd23ace5393c3f2","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.049f396.tgz","fileCount":2113,"integrity":"sha512-9kTw6NvB53vRKngLQQ1dQlZRHk9Grr9YVm13OrbHHxtwSw4zS4P1uAQyfn91KBX2Xqqm4WFgVjvCt3HIrOsxCQ==","signatures":[{"sig":"MEUCIAm1iZEWIf7E/nkgmgvVEmIbWScGkrTz4rVTBCOVs/ZLAiEArxxUN0plxXlKyuMXXJKqjXDDGekD8klpoHBgIXI2RGA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.049f396","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23051772},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"049f39639311af35ecd79725a732f6ce79fa475d","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.049f396_1772883764748_0.968646669315183","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.43b400d":{"name":"remoteclaw","version":"0.1.0-next.43b400d","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.43b400d","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"7b3fffe194b81cc61b99bd11c80a3390059e82ea","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.43b400d.tgz","fileCount":2113,"integrity":"sha512-MenIw/A+5nW/w2veSvLh7a0SU7wtp3z7ScLVUsmoh3qsbUxmZd51b1ruUvrYivZjCSbaNhJysPRQQqCRDCTTng==","signatures":[{"sig":"MEYCIQCHF9TucGRQkaQ89lIRhpGLUkswj+xlSN+rJdG885EbigIhAPsnJCRylR2B6+lJoRVhm/zAxEZyqhEla6mnGQF45L2l","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.43b400d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23051395},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"43b400d39f253eed00557af7caf813d14c11dc87","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.43b400d_1772884429986_0.7060457271448926","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.2abd2fa":{"name":"remoteclaw","version":"0.1.0-next.2abd2fa","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.2abd2fa","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"eb916740e125fc1d4fb6f41cd9ac5b13d7058fa7","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.2abd2fa.tgz","fileCount":2113,"integrity":"sha512-LEeQRrX2MX8LZxQmosUJUe3iM3PLzMe8X+KBE2N4PqVYw1kNttzwBUzp1HVwSX0aPjXWbZwmxP/gjjGSgmV0UA==","signatures":[{"sig":"MEQCIH3fGEVTDmY/1LyFQBNuesIdMsCmvyNee3f7h6oGJr2jAiAXWlH137F6iEi4zWtpEnXXlKe768jRvUdLf9RlQa8IqQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.2abd2fa","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23052088},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"2abd2fa98999817a5a2e52b5525511188811e526","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.2abd2fa_1772884823279_0.8956321491272268","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.aa8f383":{"name":"remoteclaw","version":"0.1.0-next.aa8f383","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.aa8f383","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"5849daa43542e193cb95be20b2c51f48c87783ff","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.aa8f383.tgz","fileCount":2113,"integrity":"sha512-nDUcN//h47mtrHQHn/a9yAkg9XBX0BFr3+h//PdrGIr8Rf19W5RM4KrdPCqNKyQiTZBc+dR8Afw6n5+RtPansw==","signatures":[{"sig":"MEQCIAkm6PT3Yo3QXHtQzvBwVBWaAsjM2GM7OX4WKAc74QzJAiBw5opEzyQjmnyWbbxkbxYpqrgxYljI/RIbJUBz8A9kdw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.aa8f383","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23052092},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"aa8f38323b04fc19b51bb5ab859805d40db505b8","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.aa8f383_1772886533106_0.08847936590912697","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.87fb2cd":{"name":"remoteclaw","version":"0.1.0-next.87fb2cd","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.87fb2cd","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"3dcd925366d1aa6f03ff001782d9649c3fa68808","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.87fb2cd.tgz","fileCount":2113,"integrity":"sha512-C55DowNwWCXTvTscLoBTkEB7gFTKUBn+2mUt5WN60G8JPBH9JKG+/EvF44kjzrhHlxiZxqo2v6cLY9KUGqP4Lw==","signatures":[{"sig":"MEUCIDerfsVRlWZPq5fc8hb0vP4zTcI5/xh1O8ehafrK1domAiEAkM6kR7cXQFihUJbQkpXEsssd9ksr71M8aDGuBctps8g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.87fb2cd","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23051003},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"87fb2cd03e91d692b8aa9d7dfc7f4c55a885db33","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.87fb2cd_1772890688386_0.44495125957263304","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.87d2cb6":{"name":"remoteclaw","version":"0.1.0-next.87d2cb6","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.87d2cb6","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"551004b1c502182ae9e4dc7ec3dc0aa0cb2ac5d8","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.87d2cb6.tgz","fileCount":2113,"integrity":"sha512-QSu+yk0X60Qa1HD1ZvmRgEvjUj1m9hIk+vwb8RcSQtNxdtPm9oGp9F0e5lHb4p/b3BeVk7uF4WSn+dnvizZ30w==","signatures":[{"sig":"MEUCIQDgNBq42rB51MvFdIBx6eucjYd3jeSuFzZuApg8x04LrQIgIx6fFvMitK2v7HS7NF2ZD7BKapuCf5qGSpVsaT7bmzE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.87d2cb6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23051379},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"87d2cb621913514e092b6fe260c92158dac9e52d","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.87d2cb6_1772891951444_0.7177250663787733","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.83ae9f7":{"name":"remoteclaw","version":"0.1.0-next.83ae9f7","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.83ae9f7","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"0a28619a6802b54bf37fada05df1971f9a60b4a0","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.83ae9f7.tgz","fileCount":2113,"integrity":"sha512-n/WUqwf00DRF//sjLw/wyN2UjpIwBhw8Lpuc9aTq+zOmy7eyl5NV1DCSPR+lNog4LFi0My65j3UClozP6mDG0Q==","signatures":[{"sig":"MEYCIQCnvW9YyW2g9MZQkdWBLUqg9lWEDRZk4QqnymkrN5L2VAIhAM0zMETLttF4JoF0EosCLTg8ge6verJdY9LddGdzJRNU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.83ae9f7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23050210},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"83ae9f79bc7ee2b20b0a7dea369cb648a76147a7","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.83ae9f7_1772892341019_0.44392491387259514","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.1cc1cd8":{"name":"remoteclaw","version":"0.1.0-next.1cc1cd8","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.1cc1cd8","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"ce07160ff5a3ccea8122f22842d822a34b2b5e27","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.1cc1cd8.tgz","fileCount":2113,"integrity":"sha512-flCD1fAp5j43gQxNxjGgDE8ih+areEvWtcuRa2sLmk5r9ygtBMxwVbAEsNl1Rgypr1TgmPRtTNI1tfo5c10ytA==","signatures":[{"sig":"MEQCID8c56+f/9dypepCZhEIUUsEPfLS0CrmUNjjGsmlSrwsAiA94+i5MiGaLPB+GM/YRA8CYKa7no2N/bPGYtx8N3QWAg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.1cc1cd8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23050561},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"1cc1cd81a194753db9c1c71d78244a45715ec0f3","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.1cc1cd8_1772893130784_0.24674056093587926","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.846cd28":{"name":"remoteclaw","version":"0.1.0-next.846cd28","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.846cd28","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f2f9959ccaf6e094243d08ed36fca66166a18690","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.846cd28.tgz","fileCount":2113,"integrity":"sha512-qhXUbRQSjHA+D/fs6L2MdUur8p9jKQ1Hy7AChAmXWx5OuBnxwOVEbOxYoxJJu9R4JyvVpIMCS8eOKwtHNPo8fg==","signatures":[{"sig":"MEUCIQCqjaeXZsIVJpnQWnPeRYXmGxIUSLYYu+hJkh08PIfbZgIgQuqSD7T6QOu3RCeiEiWy2iE3VQGqwyhf+v5sBb1vFpM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.846cd28","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23050557},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"846cd283aacf26e519a6189000d481874913faaa","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.846cd28_1772893457096_0.5958425456537368","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.4ca8fbb":{"name":"remoteclaw","version":"0.1.0-next.4ca8fbb","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.4ca8fbb","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"5336df87dd4ceec9bfa6428c1aa21b26237759d1","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.4ca8fbb.tgz","fileCount":2113,"integrity":"sha512-2MuxyMFQl2921JMG4cXMy50nUSYzdiU8oURwiKQhR85mh39GkjJ0p5eLgBJsfdnCYLJtFFRdc0ahKLFc3bgOXQ==","signatures":[{"sig":"MEUCIQD9li4e5XPSrhhvL5R7pfiYHR48rtBH8hTyFHLR2TvhQwIgMdtudLzflb/PhOBjm4jy1s3Z5ABC/zCNEdbIzGhG+p0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.4ca8fbb","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23057465},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"4ca8fbb478eba2fa49befa980f14ad134dcfa10a","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.4ca8fbb_1772896559219_0.7883720234632412","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.6eba873":{"name":"remoteclaw","version":"0.1.0-next.6eba873","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.6eba873","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f3cc2c39baf6682448e8713d82d19e6f7b814381","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.6eba873.tgz","fileCount":2113,"integrity":"sha512-isldILNG5jo/FL5aPV7ffwPRhx4Tv4Qe8najakbEuvqsZzfK/kV6opncfktOGqYXFoIf+YRerpWt7r6t8VpfMg==","signatures":[{"sig":"MEYCIQCzXYnH/JKdU6eZis1CmrbTc/qYSvFspvhK7EvI1nC1vAIhANM/psEaDQwYChUhmYhlt0d4MzCZS9YbaBfpbeEkIp/D","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.6eba873","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23057965},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"6eba8734004f585b02236f61b5692db4b403b0c1","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.6eba873_1772896886156_0.20247800398765947","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.b9d22ea":{"name":"remoteclaw","version":"0.1.0-next.b9d22ea","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.b9d22ea","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"7a942c25a3620cc1ba69f05e76fd826ceca1d656","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.b9d22ea.tgz","fileCount":2113,"integrity":"sha512-OGM/sX2XeqYOL5u4In2w5Q4waoQLEYrNKgxxNDbd08PUBf4lvfyGyVzSPIVz0VO4k9v/62ycA/++Q7eV/U03FA==","signatures":[{"sig":"MEUCIDqmAscooIn5r69Y77KtoiG9MLpHgy78EqYYF6XKVGF/AiEA9DHG7WYXbQynHjacqcMZeHJJv4pyfMdmBd0UVSpK1GA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.b9d22ea","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23058341},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"b9d22ea23a921a364a700fe1f46766a202059cf2","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.b9d22ea_1772897220368_0.07205102270505881","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.e3d3913":{"name":"remoteclaw","version":"0.1.0-next.e3d3913","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.e3d3913","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"c04dced0c9f66eb87be75776dca9e05cfefa7189","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.e3d3913.tgz","fileCount":2113,"integrity":"sha512-tmSbXBODbF2ymX9Vz+xsnQSV+XyvaBEQoi3J9fXlbON/FiHGAwgio08pAYiz96oMpQW29sPU9hLRoUEXW7KP+w==","signatures":[{"sig":"MEUCIQCIipDgexwS11qBf09y4iRyiwLJ6GG/krEx6i6euwl6kgIgKTGGdGUnHOnoYwBoJz+C7m134WuFrttmCgK49MBoNhk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.e3d3913","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23057965},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"e3d3913af311c352fe887cba789f35e7baa5f30c","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.e3d3913_1772904213518_0.8038844514791805","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.3429a40":{"name":"remoteclaw","version":"0.1.0-next.3429a40","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.3429a40","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"9f065a7ed73ad74a28c9f3f44b53e719e941ef40","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.3429a40.tgz","fileCount":2113,"integrity":"sha512-yqhxiF/rlKZRSBuxFHmy90uHS2vDs4TnmcN6kmt1X9N9Gy0PpZ8C0agTDlYjkSTer/wwT8kGcGJBaJUELMkt5g==","signatures":[{"sig":"MEQCIGp6/UG/Y8WxSBbt5P8RKhrOiX5j3pUQLMNh7q2D1OVGAiBPKwOUoBeE9nFwiAG3o3YRYOBBROVkTw/4R303p5Ik8A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.3429a40","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23061187},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"3429a40eefd927adbe57fe2b75fd2a4793f1913c","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.3429a40_1772910288694_0.9780274379454741","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.5ed82dd":{"name":"remoteclaw","version":"0.1.0-next.5ed82dd","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.5ed82dd","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"2ba583b8dbeed470bc867fe10b0499a677f2425e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.5ed82dd.tgz","fileCount":2113,"integrity":"sha512-vCFaFVfRb4DjrVwuZVF5mzA+xY14NVdlEQeF5wuISIJm6WuNqzdumoBgBKwqErWJ2T6II1lcrE6nvmcVg/5t0w==","signatures":[{"sig":"MEQCICpSVBmbRLCttDmZBJ4YU5qmbIFONbrHLpKT2+lIEiYbAiB68xB/BSQDzM7TLoIGfuLorIx0Eamy05P9i1xDBglB1A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.5ed82dd","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23061142},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"5ed82ddea4590c5090ff5799fcfe212536d40945","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.5ed82dd_1772911344488_0.9188599673715467","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.6cbde32":{"name":"remoteclaw","version":"0.1.0-next.6cbde32","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.6cbde32","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"3d3866c8d133fd0d68166120315e9fe737e2483f","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.6cbde32.tgz","fileCount":2113,"integrity":"sha512-6LTr18c8nZrHvcZuABadlD2qQo4MsUgQSxLaUeVx6j8disk4VYNTaQt8VyBV6/loifLXHv3tuRfE/x+T8RSdeQ==","signatures":[{"sig":"MEUCIFFnL8OGPpp9cXI+WvmloSDulq39kMJcZGP0OAJ0AAo2AiEAmnuTz60eTIdjTopL4aXmtQGnt9/1wT30i+ol1qnr8LI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.6cbde32","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23061138},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"6cbde325e131f997c40ca55a536a7e79282bc244","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.6cbde32_1772911894879_0.9446948286642403","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.0c585fb":{"name":"remoteclaw","version":"0.1.0-next.0c585fb","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.0c585fb","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"b70be7228f766323f32daad4a6a12ac0678ed366","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.0c585fb.tgz","fileCount":2113,"integrity":"sha512-8RFcXbR5F8JpbZnpNJQAqpERvLwrVIeRjy9RhRBx2jCQJIs9TnOcc+f1ZFTJZs5Ao5nPMwDv5PHQVXiV6BRELg==","signatures":[{"sig":"MEUCIF7Xny8xvxXQyGOAv+IMMVgSscKSQAjS/CtPI41XBKMGAiEAib2ugVp7Xtnl9fuvoLcrlA3RSUSLCApnOnBHh8tu3HI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.0c585fb","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23061143},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"0c585fbd1610217194559fab726f99859ca6ec52","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.0c585fb_1772912454410_0.5901119919479874","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.4452b2d":{"name":"remoteclaw","version":"0.1.0-next.4452b2d","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.4452b2d","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"8322870afa6d7481400041c27cbdba1717e45ea7","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.4452b2d.tgz","fileCount":2105,"integrity":"sha512-E3hfdBnSuF+W009cvjIeh3R3PqW8jkBwx61NR6Di3tfR80chRJCR8/TutoGOKy0ItKRjea4luvWCb8HdThPGHg==","signatures":[{"sig":"MEUCIQCKFoS4Hwup53jwFMkPES232Z5e36vB8t8Ruj/4wz93BQIgebSvYdbw2ww4ip2BMxRvkt0x9tu/UPCyrIKAj0VpOvI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.4452b2d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23020350},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"4452b2de02c016860b74ebe17120ef2ea8a66b71","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.4452b2d_1772915076231_0.35729736990020267","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.d0d114d":{"name":"remoteclaw","version":"0.1.0-next.d0d114d","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.d0d114d","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"8970ec19f642af6a5cd90abc046eddf195fcbd9d","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.d0d114d.tgz","fileCount":2105,"integrity":"sha512-DNVukQhx8NU6C19d20DbZaRPRJ7Y5R3t6Xd/ks6WsfzkUM8XNCMdxpipv3wB5SZ6idFwu+vb8QKoN0CfwMhGtQ==","signatures":[{"sig":"MEUCIFlydctHZuezHuqXwZlviJe1MWPs/vb1rHI35FSGQhGAAiEA/IYqnzRipSm0Fn49q/zPLN6BAilU8Whb+Ik4m3zQM0c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.d0d114d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23023486},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"d0d114dfc4e26b215003e7536940053d422d4064","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.d0d114d_1772916646359_0.5141055354457329","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.028b1d8":{"name":"remoteclaw","version":"0.1.0-next.028b1d8","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.028b1d8","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"3ddcd823af96df5087f21491fc762a02c0810ef6","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.028b1d8.tgz","fileCount":2105,"integrity":"sha512-Hd3VhnpfAVV8RHSMp3ATbDG6tvcGw9rG1LPieVdKcJqlj4faxyGJFBsXI/DwqBIUB0JHyyJXNjKyIr08SglMQA==","signatures":[{"sig":"MEUCIQC1CySiXwF3C0Vza6Y4TNdcuW1zeFYPbkZ8DiAeffBGDwIgJHG6Nzq7LTvDniF3cpuUdujSg3aT/FwHflIsN4psf1c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.028b1d8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23023714},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"028b1d85c94f46ba3300106ff6646fed24e8ccb5","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.028b1d8_1772919703767_0.15052891813079405","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.a9b5748":{"name":"remoteclaw","version":"0.1.0-next.a9b5748","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.a9b5748","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"83b4651d52a8861031285b35c43af130bd1f98c4","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.a9b5748.tgz","fileCount":2105,"integrity":"sha512-rEWhusAhZET6DdmmxnadbV2k9fC/QFSFIW1CNtRI1ns0wXoPT8buD/r/PknPiwMjZulofvxwZMvBoLKnOR7Cfg==","signatures":[{"sig":"MEUCIQC9uS9OlonVWURozdbAARFwuY1U1LD8kjH2sLfIhqGTpQIgQmaVFvYgQPtrVkR1N44VY6v6PeVfP+BWOxVYEuDtAY8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.a9b5748","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23026888},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"a9b574871858d282e4fa4de7acbe1627f60a6eea","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.a9b5748_1772920869294_0.6989666326146098","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.1de6519":{"name":"remoteclaw","version":"0.1.0-next.1de6519","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.1de6519","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"91ae680e2678279dacf05a8e76a7dac901cdad82","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.1de6519.tgz","fileCount":2105,"integrity":"sha512-RnlNKPqNhnBUHepOxtVmVezaM5U/f9RNwwbw2N7HnyX9XzTBf/xPTlilBRk5ZU0tIB3kG8iTneWd73YSLhaZtw==","signatures":[{"sig":"MEQCIAiouOvDbPtcVD2M5lk5dRY+nS8LmrX4crhuFB6NuwrRAiANQeA7/W8Xqyduqpkb00VLhBQ30x8Oi20K2aJq461wHg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.1de6519","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23028414},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"1de65197693c3f5bc3a95e77ff086450f508a8de","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.1de6519_1772924038302_0.7410953280916375","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.4659fdb":{"name":"remoteclaw","version":"0.1.0-next.4659fdb","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.4659fdb","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"8177a01aedcb1c4697fd9b4172b74f85a3fdc327","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.4659fdb.tgz","fileCount":2105,"integrity":"sha512-lw8h9NBDBRdDVmimAZ3NOSIo2jVJTUrbmcqslUjLKeofECd+eSrdB1cWf+M95l904Fk+FH1Odv+RCd1P73dTNw==","signatures":[{"sig":"MEQCIF1+PPWf2ZTfLOVPxCH4PtQcu4rxmxyEmc16ScFCJMlqAiBIvsX4+/1xkG0LMom3EurIA+Ap6IMdfZIrjYHGXgyNMw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.4659fdb","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23031756},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"4659fdb5000371ee2ffda95152fc3120828eb0cf","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.4659fdb_1772931518078_0.13601417256608928","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.1a86989":{"name":"remoteclaw","version":"0.1.0-next.1a86989","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.1a86989","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"78d31ef756d4eca6efe41351f0114666768a8f05","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.1a86989.tgz","fileCount":2105,"integrity":"sha512-As2mbw7+rOcL7cm5YkpKtNX4NoM1pMLrEwcRWwbbAwjjAITWAv8lGeWDB6DfU7/yy1/YS/3ocb2ehO3OlLEyxg==","signatures":[{"sig":"MEYCIQCJjK3huex5kH3Tw+ZdJmzR/ju6qp41oSHCkHconiNd5AIhAKafvPpxd7Za3psnUo323daDzJ9+FSftQ1a0CdKLNTXI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.1a86989","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23032436},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"1a869898c7e44dbac5465da74056b1e94972c013","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.1a86989_1772932070687_0.4299313753341285","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.9f7caba":{"name":"remoteclaw","version":"0.1.0-next.9f7caba","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.9f7caba","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"1d6154d138de36ba5866b53b422b34017bf4e894","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.9f7caba.tgz","fileCount":2105,"integrity":"sha512-zSJXDs1CEneLg0VEuuqwbniUnS46NgDpsm7lupqD3IAu5XzeeWGJ/DSDToQxRsUwd5YDG8XPVEZbarAW5YdY3Q==","signatures":[{"sig":"MEQCICLdqlWBhfZHyMU/IUsA/Tk0+PL9SCp8at/LJoopztcXAiA/ACRhiHPsfgzw62Bdl1qvyjxsrjS1wD04TzUX8UnNdw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.9f7caba","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23012610},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"9f7cabaa914c5aa5b7f3fe59bea1c520c337dfd2","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.9f7caba_1772932605512_0.36531683779057245","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.9da39bb":{"name":"remoteclaw","version":"0.1.0-next.9da39bb","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.9da39bb","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"9ea30122fdca6fdbce739573122456ac0ae78615","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.9da39bb.tgz","fileCount":2105,"integrity":"sha512-/gIv+GsyynS+CwcVfIjvy8vzlkcRSPnDmPoANFnpJ7RubZNKcTZM0JUDFaubbvmG6tA4u0+YdnUPAF1JHs2Xbg==","signatures":[{"sig":"MEYCIQCp02LQEcEHzSQPvu224eIW8SqeuUfVUVki64tx6RfHyAIhAKKmXN2lYBN7wmlgoNVoS+596eZ5RqJLuBxKPqFc+yhL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.9da39bb","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22932005},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"9da39bb2e037ecfa7289b068cde414835eaaface","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.9da39bb_1772933232644_0.9780465397947984","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.3794879":{"name":"remoteclaw","version":"0.1.0-next.3794879","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.3794879","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e2e4abca259903cf623622d19408984991d09041","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.3794879.tgz","fileCount":2109,"integrity":"sha512-K3SZnmcMIWwBMTe443aEyumBjE/heOLHBev3p89s55SFMwYQo7i1dr+TD8M0k6iDucPA31wdUCclgYVTWxACkg==","signatures":[{"sig":"MEUCIGrZBe+Pm1jUhKR69VhEjmfbfM01k5chfLlxCHXc281kAiEA9k6jvV6RwPiZY5hTU9TmJYGFL3X7AkuriXxGP+c05n8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.3794879","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22942059},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"3794879e0067d31d8e82a1050193efa45a882d37","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.3794879_1772952345969_0.6014345985187426","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.af48e6c":{"name":"remoteclaw","version":"0.1.0-next.af48e6c","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.af48e6c","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"8a2159fe2a36bc964458d3eb1b08df307c926a95","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.af48e6c.tgz","fileCount":2109,"integrity":"sha512-I/urPZHCsOV6uOkdp2vMUHFvsEQe8OFszh9+ovnOgWQofJqSXg8YSJCkZnSAmBXi8Nu7vy13XZXj2oI+SG1h1A==","signatures":[{"sig":"MEQCIEJwHnD6sZPGNdQdRHZXP8tWfo1EyrpPGO0wdoYn5uhUAiAZUFYiOdjmGWnB5LmCumnURu3KSMwbcKjx9/FJpiaQOQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.af48e6c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22942055},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"af48e6cd3c09dea89ac182319f1a546d649127a1","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.af48e6c_1772953580398_0.09749713888516798","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.e183536":{"name":"remoteclaw","version":"0.1.0-next.e183536","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.e183536","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"fa109bb7549cf5d250f462341cefa214e7ca3e8e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.e183536.tgz","fileCount":2109,"integrity":"sha512-H5ej6HY68/1362ftxfPn6/VJDOT7btzVIVDbgLQBf7FiTfHAw574Egn1LTxajr8XyFYNqBtzVhYeVT39fGKS9w==","signatures":[{"sig":"MEQCIGCQTeTYf3TK32oKSh+USaHluLs+W6MLhV8WGDXeeE4SAiAcOJUEJ6hgWcTvGNpWWI1DeD7GRrr9tEpfN9UpmJt5PA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.e183536","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22943389},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"e1835361aef101b3e4167660f5f2ad513643e1e4","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.e183536_1772954119629_0.7128442579955498","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.d54da3b":{"name":"remoteclaw","version":"0.1.0-next.d54da3b","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.d54da3b","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"baeca610295f687ccf03b37a068645fccda724b3","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.d54da3b.tgz","fileCount":2109,"integrity":"sha512-0Hra8z+L9+hzgl1dGfBaWevca3xjaPwTe6Zd1sVwlCMB7BV50FRvyNHOhMKnzrHXuibNawV171nPr7KUoKT2Yg==","signatures":[{"sig":"MEYCIQCZs+qNjBnkPHzF+MVhv3d2hYMEyZQimqYBF0CL8CUv4wIhAIKdQAPr1xxxp7tIVTg2UzjGxKDCup9yhHRdyfEglSxQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.d54da3b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22943381},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"d54da3b6109be1f4e3233fe491b52a7cf6e18fc6","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.d54da3b_1772955145180_0.9637376162016162","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.3a23392":{"name":"remoteclaw","version":"0.1.0-next.3a23392","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.3a23392","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"4b8e4c075b9c69b94c1a7ebece1066ded0199971","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.3a23392.tgz","fileCount":2109,"integrity":"sha512-bEAdPmcuYkZMVtrCFE87ZELHduxTdIuVGQbEfC9c6aDEzlWih+iafDNUmv5qpWprdC24ySFayhERpGnP0SjEZw==","signatures":[{"sig":"MEUCIQD06KEEaFWS5klKyn/j3Bd3Huqsejyrcq12xfZjUGB/hAIgL8vaNt0vRAYs4rqjiybkF4pF2i/QWZz57+qlmc6a+LI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.3a23392","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22944441},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"3a233927bcb46cc8990d8e8206fb65db4a1a5a37","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.3a23392_1772955732073_0.1839451342866174","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.243a02b":{"name":"remoteclaw","version":"0.1.0-next.243a02b","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.243a02b","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"3ba5fffabe578a73eb1a28f96f61f24362dac5c2","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.243a02b.tgz","fileCount":2110,"integrity":"sha512-3UxeuRrfQrLstj+P6tsSvhtEfqmP9qIJCAc4MtcQ+JukhPdznSRj9ZnDLBXRDS9FNZKbZ2O5xCaSdmf70BjJng==","signatures":[{"sig":"MEYCIQDZr+pJJKin1p/lqzmAV/ozOzewElEafSF04TrD9EV/1QIhAOlf8qFPIGnAQimiIzihCBj3EnnYPi222XmF9rZJJN0K","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.243a02b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22981652},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"243a02b914b5714758baffc94b33a7413ed52d98","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.243a02b_1772956273555_0.24083670737526397","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.c08a834":{"name":"remoteclaw","version":"0.1.0-next.c08a834","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.c08a834","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"bcc692074b3e5b1d983e47bff33162e3905a47da","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.c08a834.tgz","fileCount":2111,"integrity":"sha512-R1zRWa0FhTAcZdXD62qIhgSoaTK+Eat2DmblnDkqKVh5KbipoODYv989UETLIRwpPi3enM7owrj7CoPTSYWKYg==","signatures":[{"sig":"MEUCIQDzhCMJmv3A+9fAAzE5tBPgd8Fpp6v2xaHznuE8l4KQYAIgE1j3UvBy4wtnTmAqbllJaQWMtlNNZ9/PWbKSvUaWPtA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.c08a834","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22990013},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"c08a83429a453ce12d95bfd474ea71ea2e7ba0c2","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.c08a834_1772957775068_0.007708178919223263","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.0b6c873":{"name":"remoteclaw","version":"0.1.0-next.0b6c873","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.0b6c873","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"938c4cf96c0466e6c1a867eee3c8dfad70648f87","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.0b6c873.tgz","fileCount":2111,"integrity":"sha512-JgifjvMBhyBp8B5J3mbm0Uz+ZBAI0rXY0YjDyUylBuhAR0aQvKakgDRKcLTkXzDH246azCdQIgS9qb4JeLHVmQ==","signatures":[{"sig":"MEUCIEz6s+cOR+UV/yJ5SNC0z7lNT5B5qqjQXqy2I6JayKqhAiEAy8uyKXIYKfset0KVt+GRL3uyQnbRyM8y7BBl7vVduzI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.0b6c873","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22993680},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"0b6c873fd23e749edf4874e8b9dd1878eee13509","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.0b6c873_1772958954591_0.09752012761625917","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.2b10b69":{"name":"remoteclaw","version":"0.1.0-next.2b10b69","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.2b10b69","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"3cdc793945b8e59b0670fb29e7a8234049786ff7","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.2b10b69.tgz","fileCount":2111,"integrity":"sha512-5DoF+vleCtyHuY4rTUpmNp6RJMfI2w2X6Ede7OoiKdP10twh6uuonBBXmexbBSkzR7aIh21S01q6pjQrTV3RNg==","signatures":[{"sig":"MEYCIQDTDT74VWZdGTDWFxe+ui0VUDGnq8kWrb3kekAdKVF2RQIhAP4COXlgOahuLualb2NOHSzVFPMeucqjdMsbvtN8YLGG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.2b10b69","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22996735},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"2b10b69f0726ec4b843288938b5fd094684f8ba1","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.2b10b69_1772960106479_0.36569920531713573","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.70c6254":{"name":"remoteclaw","version":"0.1.0-next.70c6254","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.70c6254","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e3260980d711d9cc0146c193c57a2f00c9592c61","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.70c6254.tgz","fileCount":2112,"integrity":"sha512-pKa54CHCeSirtXx6A/7ig1SJYNbb77ClhD1UzcOJ4FuCH0tm+pEnqTPFxXXYh7sZbd7HklBl9fQas+u9Dd7RSA==","signatures":[{"sig":"MEUCICrDq7pbHvkgPW0KDwIOiiJgOkw+7ayapssv+a813BuFAiEAhfcKSGDrwIeEjzCb326abWrSCgMlDWJITPOIWPAr73I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.70c6254","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23014480},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"70c62547abf40127c925ab3651113c5844250d8e","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.70c6254_1772960668750_0.6527138188842867","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.0b680c2":{"name":"remoteclaw","version":"0.1.0-next.0b680c2","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.0b680c2","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"40d2c9afaa36f0d4928a6a1edf905656366845c7","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.0b680c2.tgz","fileCount":2113,"integrity":"sha512-u0l0ykqZCWAO9/Jy0Gdxk+8p16oYyGZiFTGLEMyVmIwvdfns3FPkgoU1dNGb2ZdbW4h0DU/BC5D4D/zdZXskZA==","signatures":[{"sig":"MEYCIQDHfhuvvH09ETA1kTv6NluNLgRv/EmkmSh52nEXXe1rpAIhAKrYGrQLt5KZC3juIrxCBOX13DzbFF9QLP70GHibb33h","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.0b680c2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23023245},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"0b680c2a12478eea4aa238b5731570e845e1abfc","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.0b680c2_1772962117951_0.0684819792591076","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.722af12":{"name":"remoteclaw","version":"0.1.0-next.722af12","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.722af12","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"2522fed7c7796bbc473523a7fa060ff568941e6a","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.722af12.tgz","fileCount":2113,"integrity":"sha512-6aWJ//IGHCXKfis2ydYdM9mtibWqULxqBCNOQ4Uu9YSlFsDPpNEg/6bh3RyC8jOqQDoNHNlAzsoq8PVjrqZGDw==","signatures":[{"sig":"MEYCIQDXP9OISfaQVrl5OhVxNFGHvVZWxv0wmsFCxh0wuIS1FgIhAKYTximST24+lmNTrxRQwBzAdBi31i+A+7yFgLtO3dUc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.722af12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23027229},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"722af12aca96dbe11f1a7466437db393101d3697","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.722af12_1772965850661_0.5983849643662671","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.0f73506":{"name":"remoteclaw","version":"0.1.0-next.0f73506","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.0f73506","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"dc3723c0b140f879656132b099222c2c176a45ea","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.0f73506.tgz","fileCount":2113,"integrity":"sha512-AXOeyYBoTdKAurpUDXXCr7d/XxIzNeXRepjz2KkENHJyudkptinjl/4gArmpVV54r3fCiq7OSWZqveAyqAn3RQ==","signatures":[{"sig":"MEUCIQDh/tCpLurdI2bjsgbB2ZjVqR1rJ6xU1zccQfIZ2msYGwIgLDawlb0UPF0BwIH73ZHJTAItpWOMovt/YSiyuGwsskM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.0f73506","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23039643},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"0f7350633e77a31ab212e00d772fcee156248aec","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.0f73506_1772966396716_0.1355997277523282","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.2e9a6cd":{"name":"remoteclaw","version":"0.1.0-next.2e9a6cd","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.2e9a6cd","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"88b546018c8df290b28d38ab09d9db2260f34f8c","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.2e9a6cd.tgz","fileCount":2113,"integrity":"sha512-g0WP7zV5sbkmJBtu0+pemQu8jbD3k48mDM9ujGaV8ZXCVkHCTkfjORlowyim4gyMt5Ru5Y7wesMIo+QNLip7Vw==","signatures":[{"sig":"MEUCIATg7TlXGZqOixiMopRJaJL2qsI1Rcppz/X8MbRkzq15AiEAs1BXepknB9s87TtAh2Yb8mGz/5P+cwPhHpM9S1dTj70=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.2e9a6cd","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23043335},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"2e9a6cd8feb00eb61533194ec1cb2670fa57f416","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.2e9a6cd_1772967268772_0.9431332928051215","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.5627c46":{"name":"remoteclaw","version":"0.1.0-next.5627c46","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.5627c46","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"74318aff79a04ccf5b9e91f92b58f60f20ded028","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.5627c46.tgz","fileCount":2113,"integrity":"sha512-Lhy7dbiVtfDX7ySxCT71bVY2Emir2X4cW3n3irgTE5x5FY0VA+gjkpm1Az6kv90USQGSmTMIIW/mfPCfRvGNHg==","signatures":[{"sig":"MEUCIC1/7CwiKpRk5PWnMsdZMOIIgKQGPogD5rYUpp8eWF4xAiEA125UrY39v5SXbV/6Gvnl0dM/k0BxPXB9if22kscjR2Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.5627c46","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23042955},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"5627c466e7f70ac69b810448cd5cc4017ad725c1","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.5627c46_1772968509202_0.21737509854389003","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.dbdff5b":{"name":"remoteclaw","version":"0.1.0-next.dbdff5b","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.dbdff5b","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"89a0622ece387cc16df7a6eb416dd1885f06b9f9","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.dbdff5b.tgz","fileCount":2112,"integrity":"sha512-KtzE8KBUIkJdAFMtqVUd8DBc2AZPv6LYww7Y0NFXBoJFbrz1bgeJ1ZLFCgAreUpuHvm/mp6okaMh9o71mqPsKQ==","signatures":[{"sig":"MEUCIG4sRJSbZ4e9SDW3gOP2t32D0l2KLZKxfTGc7LLNwyoOAiEAw8AQCAA7SxtDs1AiW5bdBFegF9t4rizScBSnqLG/gbU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.dbdff5b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23026243},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"dbdff5b2f5201d3f8f56c649713fedb429d5abb9","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.dbdff5b_1772969015640_0.9985374747224522","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.4891ef1":{"name":"remoteclaw","version":"0.1.0-next.4891ef1","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.4891ef1","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d41b51db5d9b41da8022927926ea243e4bdc7238","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.4891ef1.tgz","fileCount":2114,"integrity":"sha512-zHIj6mbxZrtxta8C1SPQk8+GTR7ZKgTW0SR4M+QKlIsA1cI0K8olDGW92Y7x+ahZ5iyGI8TtMFlHrVgMokRlSA==","signatures":[{"sig":"MEUCIQDUB4YhWgaViODqL7Zhq3vgn4dgqjS4LXroiYcVDPkHQQIgH3O/Fi7XGDP8lBKTLZ7HMqJUJHn15AaoR6ykx7bT3/A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.4891ef1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23035545},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"4891ef189427a392e41e165a61e8e3f6fcf5310a","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.4891ef1_1772969561278_0.8823004591550077","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.380d26d":{"name":"remoteclaw","version":"0.1.0-next.380d26d","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.380d26d","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e7e94c65b9a418114018923f1878af310ae7a7cd","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.380d26d.tgz","fileCount":2114,"integrity":"sha512-CTq6wV2RylrwFZ6Hd0XhND+o8EqjclPkqrP7uC/eYYraFLcudJe6m44XB4SrpxE8zgGaHOWl98c0zpIXiLzmiA==","signatures":[{"sig":"MEUCIQCz8wBE+wN42Y+fvmOH2oT2p5bAZ5XiSP9Qk5HNX50rdgIgeB2JTzOslgZb9BKorKj925YSgMQbOR8yqBFnjG2uJPw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.380d26d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23037125},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"380d26d9f07041ecba076545d1aa3c3d4b6a8d5a","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.380d26d_1772970100282_0.9681380954485264","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.6dd1513":{"name":"remoteclaw","version":"0.1.0-next.6dd1513","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.6dd1513","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"48b1484891f4a7721525afa93c0c17fd04021cb2","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.6dd1513.tgz","fileCount":2114,"integrity":"sha512-Cy/yEsm3+dou8nAyDY1SVUrzrTRvKNxVpqeJaffJ985XeSZLMC5Yvt9MaIO4O5gOaWepT/pyin7JR9OakW9zhQ==","signatures":[{"sig":"MEUCIQDgTwGRMSpbP6PzzahzBGT6sMCCqQDZFQaOkiqaVACxRQIgVAcd+/Dc0pYuYfil7eM9EUDnqQMFdeE4/qDmdYNq/YA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.6dd1513","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23041327},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"6dd1513cadad7c93bc2054168cc89ee6583cae2a","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.6dd1513_1772971425207_0.3897354091143437","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.900e1cc":{"name":"remoteclaw","version":"0.1.0-next.900e1cc","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.900e1cc","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"4046ece786a28427655d673e686bfd84a54daec9","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.900e1cc.tgz","fileCount":2114,"integrity":"sha512-Is1Y10US7t0B3TsgXj0g1JGhDpCQB5VTL5FY8yVekcTpPOujHu9DyvknLlZIhpPEOQ8xcuZGLQJQ4GAmUnsQyg==","signatures":[{"sig":"MEUCIQC2L4/CkiM0+JcJUUH3P4cbnVyJXyqjj08apPcyESv/zgIgK7vIiye8ExqTB6M1V1VSO+Obc26Xp0IzL0KwinWkzOE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.900e1cc","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23043885},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"900e1ccd8fd156b5189f2fd2c95567229e4bb575","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.900e1cc_1772971973432_0.9263514793307188","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.77a7a03":{"name":"remoteclaw","version":"0.1.0-next.77a7a03","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.77a7a03","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"a6184f6b14b8647c0ceef07de8e77a92d3aa7f1c","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.77a7a03.tgz","fileCount":2114,"integrity":"sha512-zSXn3WXI5t4OdOPYMdLD4poXzEIvB0xwpdCI+wkaURkgVpWQ3jf21BcNPrTcC2ggwCY90MNRbExAmXFAq1MB6w==","signatures":[{"sig":"MEUCIA+1jxepR+XwE2uj/y26etT11RxR7eZUJIUVpw76pOxJAiEA2h4VqBNddti5imDMpyEuLqPfND3egT3wY/l29/x9W/Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.77a7a03","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23050642},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"77a7a03f4a49f913201ffcc322d2603c390e85d3","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.77a7a03_1772973681016_0.3362217120021569","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.772ee76":{"name":"remoteclaw","version":"0.1.0-next.772ee76","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.772ee76","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d4b5b76b4aa520ea8b8a62add6de296cbf42c874","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.772ee76.tgz","fileCount":2114,"integrity":"sha512-UzCaFcTBGBkRsYgALByOe/MZJqujoRsPyibyvc5ncJLj5dYJhOvKskSTPO7j02vv9o6WyDCX5q98dMTxl6zhJg==","signatures":[{"sig":"MEUCIEqkGcByUKIxItvjNeYOHXW4zuwnkOPitu2Ny9A58SaqAiEAriFnynA0AGw5pjtKULG8l6uRsMMydwQH+BPr2+5/Wj4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.772ee76","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23051863},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"772ee76768594dbf1e2544f720db2f11a7da88af","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.772ee76_1772974228523_0.5493798549250859","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.712be07":{"name":"remoteclaw","version":"0.1.0-next.712be07","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.712be07","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"0fdcae6e148e951046eba8cba9ad4998a022d23b","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.712be07.tgz","fileCount":2114,"integrity":"sha512-zQggB/iN8vQGPMqu0f2gHwUjlMePqo044NaQulk2on+9Bu6j763VnFNFZ4iEErPzH49pbYLVojvJ5qGtAb/64A==","signatures":[{"sig":"MEYCIQDfDLQVrp/pPrBDdFdrIAVww8Fok47c6wyQ0bZP937b1QIhAKDct9+5N7Mrf+bopF9upKB50kaOb9qmDYoU7qgJWT53","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.712be07","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23051995},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"712be07670076dc5437f2c9fd391ec926cf668fa","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.712be07_1772975987697_0.06342137846528839","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.3c59b67":{"name":"remoteclaw","version":"0.1.0-next.3c59b67","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.3c59b67","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"794ec9fd7e7b2f424962e1b31f607f976a7bb725","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.3c59b67.tgz","fileCount":2114,"integrity":"sha512-SrMUV4MFmW2ZZqr9pTubOZpZLrVUJl974D7vE+16AlVlZ+rKZCKjBkzR8Z38uXzKyK6ECEiAAuLjxxaoN08jUQ==","signatures":[{"sig":"MEQCIHotaj9JcWFMirqTWpQ3nLvTlfUOhg3546y3C/GTDLQlAiBZYofZn9Jj37nN6Yjf73lfttgDfm3QV1EeRi/VcnuYJw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.3c59b67","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23047895},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"3c59b672d0b88618a30623911bb64fc735449f34","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.3c59b67_1772976551908_0.13484448759685952","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.a520909":{"name":"remoteclaw","version":"0.1.0-next.a520909","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.a520909","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f3aebd8719967350327832400e4791846a09e734","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.a520909.tgz","fileCount":2114,"integrity":"sha512-2mt1P9x39Usb3KPeNJQnztbd/cJ+wnfvBMsS3CCfnOJG7ZRU481f1Bbm68ftzHS3czJVt8+9B19LeSvboOTf1A==","signatures":[{"sig":"MEYCIQDJTUk6/qZ4s1kCRr/719PzWjP4MgdjaEuuuueTq+uuQgIhAMFjctZuXMdpJDaXTkKHz8nRspyF0TMJuxeE091DA5ao","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.a520909","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23048143},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"a5209091edcb08433a05b6d07d33f94a29aa3a6a","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.a520909_1772977101558_0.6649858088137801","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.f354cc4":{"name":"remoteclaw","version":"0.1.0-next.f354cc4","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.f354cc4","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"b8b85dda21fa0da1ce0b60ea38782c71add8ab31","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.f354cc4.tgz","fileCount":2116,"integrity":"sha512-RfOsI8VVbVN3yrvLXEL6hFcYt/PYoGl0msybccFhrynvCpnapvTIdNfKToHS/0U4mH5O63uRDITEVv9ULRlp5A==","signatures":[{"sig":"MEUCIQD2JglbBnYyhTiPqo5oYPVHxF2l13vR5ga9pYtqvRVBgQIgO8CKKOuOb/nlwmwsyDsU64su/okx2fLJPJ0EJttYxSA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.f354cc4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23066626},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"f354cc4f7b70d13115e126b726a7af02c8d284e3","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.f354cc4_1772977634834_0.8040120407919655","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.3b6df60":{"name":"remoteclaw","version":"0.1.0-next.3b6df60","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.3b6df60","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"5704e41d2803f8451fbc64f83484b41fcf7c10ee","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.3b6df60.tgz","fileCount":2117,"integrity":"sha512-+aYDcmot59CPkxFlmjWkM6me6GUmgbrlBnyIFjwKNRd7l9VXijUXELxDqSsg2vuF27k8t2ssexo93rw0dYe/EA==","signatures":[{"sig":"MEYCIQCQ5nhtkW9Wx99LGkjXcbMz+rpEW7Kvf6nBCzUBWXQVbgIhAMGRW8d+QJDBvqn75Hrfr8AnCDCNRk57TuLWdAENDodx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.3b6df60","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23079812},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"3b6df602ac487ff2e70cff61e9d0ef2d6e49edf8","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.3b6df60_1772979617136_0.14483461766919725","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.4579e9b":{"name":"remoteclaw","version":"0.1.0-next.4579e9b","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.4579e9b","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"81fb5583521c40d12355fc4f52f9174af115f975","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.4579e9b.tgz","fileCount":2130,"integrity":"sha512-sEEzd+xXRMC6UT9xSZFBvU8Eq8tmska+C9+8wNT6WXrvzvl9fCeAzCp0MBBjIaKuuQcYtqad3orrtqJorP01zA==","signatures":[{"sig":"MEYCIQDlFoGADNduJp5OE8mbbDPe2j6FnI4sNmVC7NwP1dgpXwIhALN3We4xDbKJJhGuTlb2vqu8Am9KMuRW6HwucD8t3wUY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.4579e9b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23089084},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"4579e9b188323402961cf9c266a6574bb13396c0","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.4579e9b_1772980593453_0.2738787153098914","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.0bae0aa":{"name":"remoteclaw","version":"0.1.0-next.0bae0aa","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.0bae0aa","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"3e6dfcd8ce3a2ce8ece50b027b0d7905a8ff3f92","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.0bae0aa.tgz","fileCount":2143,"integrity":"sha512-AqkVrAaO8ElAuUODSNbuKfyMtcrjIxKXD3JiQFivbb4Wz5v1Ggn1KjG10TE0n9bXGz5nPuZJ0b/a+9c3ORTfkQ==","signatures":[{"sig":"MEQCIEqrQoO+WJ/RKz+wTkLU9yKxBpxsFurtcASEBKHcocp5AiAPy+RNIgYHtjgf0IpD0cLXWT+HqL8GccaF1+jc5oJWNw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.0bae0aa","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23200846},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"0bae0aa2b9c190260555afb76129e68355b7d79f","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.0bae0aa_1772982658320_0.992160281365748","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.db4f159":{"name":"remoteclaw","version":"0.1.0-next.db4f159","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.db4f159","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"da38248fec58c59593f4e826629e628bca7fe625","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.db4f159.tgz","fileCount":2143,"integrity":"sha512-WLChCjHKxZCr5DF7s7Lz78e2rLaZ3HETOs9ZTWTpqj9GYLSVbcVqEzfvCA1ohWhS0kGP8tzu/m6F0rb9jrL2oA==","signatures":[{"sig":"MEUCIQC9FQHXSBODM0GPaIj/Gf17ZJl0Rc7QjXTYKNI4QKKpUAIgR0iFdJD6J+O89FxTezdiUcqnE+GKXEojZw/I7TnhlKg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.db4f159","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23256540},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"db4f1598ff9e31c3a6e16366a6d761f54603b7bb","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.db4f159_1772983209348_0.309163236675007","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.658e907":{"name":"remoteclaw","version":"0.1.0-next.658e907","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.658e907","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"5e198eb9979b042ce3bbaf64e2d3ed1c5763827d","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.658e907.tgz","fileCount":2143,"integrity":"sha512-OUQtMGT8UR/tMmGEbDMTW0pY0dkuzXhxEC/6eCC0kMuHnYg7UIRbW5MC94pZ9gO88sNeZB+1PWknWK/y+XvaZA==","signatures":[{"sig":"MEYCIQCSQIVDRmX/0Ou7H31rj4/aHjfNGF5rSseE+6QGooLchQIhAO4H80SRLdhjvt6pAy+tDtvSm2MAqgEKPkUZkdjYLMev","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.658e907","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23256590},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"658e907056243889be25c1a1ae590cea8358bad9","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.658e907_1772985678208_0.7599583379658283","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.3cddc25":{"name":"remoteclaw","version":"0.1.0-next.3cddc25","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.3cddc25","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"9c596075988128883d32d64c272326de5d0ba2bf","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.3cddc25.tgz","fileCount":2143,"integrity":"sha512-ux42K1OH0PrXih3SwfhOm3friCpqK87Nw7nhHpnUdMW/x1nioR8vzefvM6rzY04SOMKk8HhTyo2bfrWAne0GGA==","signatures":[{"sig":"MEUCIQDAE61As9COsdKPFqE0iAveCXTRHkOhBJOgDWi9UDzRxgIgLtnShQhX41xfDtq4wq2EolPGq17jTeJ9nXbfzI8yERI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.3cddc25","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23205201},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"3cddc2595c9690174aaa30047cbd35c4f59ef22b","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.3cddc25_1772988340386_0.1314565253660418","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.385cd55":{"name":"remoteclaw","version":"0.1.0-next.385cd55","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.385cd55","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"9d23b9c05a8de9a576894df344f7c8f2e5aa37c5","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.385cd55.tgz","fileCount":2143,"integrity":"sha512-ECjxo88HDxAzmW3XBbO83T6DjkzivRRi4NKLnQo35o51nTvwNO+2wrSVUmKzSsYsfj4RznZnQ952EUHLw8qcQw==","signatures":[{"sig":"MEYCIQD5/XkTH0xn4gvSVbvk7wonNz6+iflXTkiEVU1G9kQjrwIhAI/8YM8puwbmpn6L5qHXn69EFGqCsTM7BCx5L4V5LiZN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.385cd55","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23205459},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"385cd55fbc4c5c78443fab23261cb4bdbb1d92ac","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.385cd55_1772989983667_0.5880697552011926","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.1eb6f0f":{"name":"remoteclaw","version":"0.1.0-next.1eb6f0f","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.1eb6f0f","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f9408a0f01bf4ac632cecc59eef780ff582b3b5d","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.1eb6f0f.tgz","fileCount":2143,"integrity":"sha512-UE0TNM97+4thYEqpwsckqaewipYrZaUZexZRk1d8DAP9mHuHClQ00JZi1TMpmcqeWogPc6QHkaa1Qi95RSow3g==","signatures":[{"sig":"MEUCIBgYb39FqXJ5XJxM+MINGqBWYCfLq5Wj9GUP9kAsPDA1AiEA0/YH9Jj4VcMfTGdsNW9/lbuLU+/LOaloj6RjZIugRwI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.1eb6f0f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23206727},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"1eb6f0f01bf6ec73dd61465981fd73ef70ce33f5","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.1eb6f0f_1772991369733_0.4585000547764324","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.bf16d82":{"name":"remoteclaw","version":"0.1.0-next.bf16d82","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.bf16d82","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"894bdfaf3aa2d1e27580e9d44dcbd6eba57668ba","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.bf16d82.tgz","fileCount":2143,"integrity":"sha512-llB8CHL59NIBY9QwVULwzeUzDPVSUkJ8NkhbakrKcHFQsVv9LbtKReOuLC1MiXudHkCHElWGWa4pzwocapk9rw==","signatures":[{"sig":"MEYCIQD3vcVBLdcEh2+M2P8OyJ42+J50pDsUB89Fd0tAlg7LcAIhAKuq9EZIcD3jmccFd1IUvtzE9Vk8HuqoSZfHEqXVB7MY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.bf16d82","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23206727},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"bf16d828130db7a71bbe6558c76910f79ce0ec8a","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.bf16d82_1772992960070_0.956564992026175","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.2d9b215":{"name":"remoteclaw","version":"0.1.0-next.2d9b215","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.2d9b215","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"78d45af98e155d624bd5133da9cb840050affaa6","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.2d9b215.tgz","fileCount":2143,"integrity":"sha512-0/qZ0qSnoZzgLX4Py+jDwXkHM9No3fJH4OgRNt6WjKMzKRkJrurzU5E4Gckj1sbw7zGXd2sHoBTUndiYiQTFjA==","signatures":[{"sig":"MEUCIFQUnk5IK8lQj8sHtPXPHm+E7gfZ1iyOCHn735okDburAiEA2ogWYzbERup2sKqrPBLWbK881z5NBN/KCGvmD/o+g+4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.2d9b215","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23206702},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"2d9b215b5f59b27ff93013a1a5d8bbb404877f16","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.2d9b215_1772993912531_0.025448363363226312","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.cfbbf3e":{"name":"remoteclaw","version":"0.1.0-next.cfbbf3e","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.cfbbf3e","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e45f4ecb4ab9ad758ad825d03b649fea02d3a50c","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.cfbbf3e.tgz","fileCount":2143,"integrity":"sha512-a+zBC3LHquW9F/VsRwEChlydAGw2sQk1vdeOpIgV86B0Jmea2SZOk1VvCULeNJUHrpMJd9Uv9756rosdZqU/iQ==","signatures":[{"sig":"MEUCIAQnHdeTWWgFHM3aQ6/aPEY3q88Zn7LENRSaEXT/tj3hAiEA/z7TPde8HtHKVcJkpqFbWbZns1PQcgZ2+TxELrADHEQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.cfbbf3e","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23206716},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"cfbbf3e29bfbd5fe464ad583479d22134d9d2152","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.cfbbf3e_1772994447921_0.4762918931075688","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.da482d8":{"name":"remoteclaw","version":"0.1.0-next.da482d8","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.da482d8","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d7ba62d4bbcebdf70b0c3d13da82a4235e5b945c","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.da482d8.tgz","fileCount":2148,"integrity":"sha512-VesXZ63PNh49+q1w8Ma36GIiUGy10xdKJGmTu2Ztw3kSnPlfIwPzm/1aYWcQjvNHZXFAdg75ABLLiAEZui7pEg==","signatures":[{"sig":"MEUCIBiD8H0tcKulR6Ax+Oqa29x7JWVRsDgX57qv35EGAkswAiEA7+W5Nct2PEIqODBlWmudIbUY9ydFuHsHTTZXFMoz824=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.da482d8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23244595},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"da482d86cc1234dc1be00c90a12e536e0a9fe086","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.da482d8_1772994993814_0.5523946713369929","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.cd6ddde":{"name":"remoteclaw","version":"0.1.0-next.cd6ddde","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.cd6ddde","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"2c441a000c3545b0e701c9e62f65745e3eaba18e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.cd6ddde.tgz","fileCount":2145,"integrity":"sha512-D/oDIW7nItknkIYz9BFb+2RmEBedhXri4VfKLHqrrVZNrzfOwR72jQPYESyVbgLTmnIiJvM2w/fTSC5T9ThS6A==","signatures":[{"sig":"MEUCIGBPcEADBYtklUbk1+kiZkdYqQiAzlCHmc4vyL6gmOfJAiEAuM+QvG+updUTH58Wjr3oL8a8qAH35NQTi2CcO5Ldet4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.cd6ddde","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23223724},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"cd6dddebe3d7314fee3b61ce6abe9183479785aa","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.cd6ddde_1772996272812_0.5677122176947553","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.2e8f871":{"name":"remoteclaw","version":"0.1.0-next.2e8f871","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.2e8f871","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"91430b9c27813d693ad81f3bd95662c4c0457ecb","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.2e8f871.tgz","fileCount":2145,"integrity":"sha512-xjtYxpNsoM4akZ9pRBUxydRFIa1bgRMngohNYnkmD+/ad547ingNxdr0yZMUkV0cLkyl4GBQVeIsZzZ5n+tILg==","signatures":[{"sig":"MEUCIQDMuKk6WboCW5rJAXaraDFJH5gTngzrXyY7jF6/wKY3gwIgLYaFy01N8/uU00CbScNx58+Xz8QPKctsfvg4mgBwx8Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.2e8f871","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23223374},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"2e8f871c8077a20d78861909ff342f6ade8d44ab","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.2e8f871_1773039303264_0.20896333665135658","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.54361ad":{"name":"remoteclaw","version":"0.1.0-next.54361ad","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.54361ad","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"3a4fe6c333abc1e297bb0e09d82a239d6b392b5b","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.54361ad.tgz","fileCount":2145,"integrity":"sha512-vEFd+cJSVJ7p6V80eMpqeQeU4vbKb6W6nzodmvWlAIyALn0gxwqb8q2G/XpefngRRThSUF08Y6J3osH0dAJZkw==","signatures":[{"sig":"MEQCIGoP4LXZBVmPsXN8SSAjoeNHh5GSZsmNi/Vot0WEg5b0AiAoyrsIfW6qoFYjdsuVx7HZCT1tLfW0aNmM38HsfDMT1g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.54361ad","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23223374},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"54361ad49f808dfad6a416221201723fda4b8245","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.54361ad_1773040988611_0.6074268742998248","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.ecd14b0":{"name":"remoteclaw","version":"0.1.0-next.ecd14b0","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.ecd14b0","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"ca6bdc2525969a30caf0eb12a04a8f301023bb37","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.ecd14b0.tgz","fileCount":2145,"integrity":"sha512-cilIan/bCjumhZrHgqeQItV0DVlsk2MKK3erAxPZGnLjZVka2glMGPvS11iCnY8Lzp/sdKClAlR+QnvAaJVF2g==","signatures":[{"sig":"MEUCIQDA/ygiPIs6kxjZdRjyAcfqGuTGAjzdj1pstOYmh5mF4AIgWSRyLPfLfcgk4YNqAddHGJEjENHDUgpdmgINoxnt1g0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.ecd14b0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23223724},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"ecd14b0bc68992c394a6c496596f1168782f48ec","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.ecd14b0_1773042063072_0.16231329821765228","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.1aff057":{"name":"remoteclaw","version":"0.1.0-next.1aff057","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.1aff057","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"656829bc3a68a4484880fcd0645665225a3b90ce","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.1aff057.tgz","fileCount":2145,"integrity":"sha512-/9Vf8iY76OC8m4eMKUPxiH/Fi2Nl1JJW8Lmy/+8zte2W+hEJDeFSRlUWv+eXbGNJL5ch+q0gZ7zaBpbP9pYxcQ==","signatures":[{"sig":"MEUCIExF8zJnFy0x/JKTpx6Toinx+r6bd79answ1Vug4O4ZGAiEAyqtgPNA+E0Ke4qacH7hRRTB9AByztujdABCypbc4yZQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.1aff057","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23223374},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"1aff057ac3e828bb8d89788f639a25775d095e3e","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.1aff057_1773043163319_0.49634505860822586","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.7f47dc9":{"name":"remoteclaw","version":"0.1.0-next.7f47dc9","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.7f47dc9","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"82388eed77dd2da49de291fdb26186406c4529a1","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.7f47dc9.tgz","fileCount":2145,"integrity":"sha512-TBv0gIuuBFHd/ptkS7x3+WHiQw0lBSonESUTDk84JBWjxonESUN9gvnKbjM75DJjZv3oa1WdGlMr0Vv8zkd6Lw==","signatures":[{"sig":"MEQCIBYS/nKNaXewquzhmcAacGGDPKANZ2+LvO3w53bJUkwaAiAVJjZSApoDox6gj6sONhqUzR5cP2zTE+9tax29HHGfPg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.7f47dc9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23223375},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"7f47dc9e977ae96224d2c13b8489973d0e4596dd","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.7f47dc9_1773044088823_0.5949538930838705","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.dc658d8":{"name":"remoteclaw","version":"0.1.0-next.dc658d8","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.dc658d8","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"dd6a640c6eb753cdb56ff332bf7c4276144ff105","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.dc658d8.tgz","fileCount":2145,"integrity":"sha512-ZzFMrNbcikzSARhyOX2Q08495GtTx0/SprmOrcRUYa2TtaoX5V04zdvb6/m86w7aXAwLUZ6E1+e+z4M9lc+Vlw==","signatures":[{"sig":"MEYCIQCEjfHggU7rWCzLMD7ck8FaoFwMAGFXvQpHM/l95OYQPgIhAOOJ66gMCCc74Nd1ok6TWI+3cu6//GLL60hJcu2xKCE3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.dc658d8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23223374},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"dc658d85e4fee68e7413224abb8e8a506aab8d82","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.dc658d8_1773044645239_0.9742180848202397","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.5edf83a":{"name":"remoteclaw","version":"0.1.0-next.5edf83a","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.5edf83a","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"9bb1490789fd08c6a363177d74e32f0db3d0a28d","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.5edf83a.tgz","fileCount":2145,"integrity":"sha512-j6gd0hJnJ947i7cVRlCnWelGYqbVlG3b28xpcPTBdFVzmCS7sX8skyvWSCg6P1PmTD1d2dYvoaoEig+P9vZ9pw==","signatures":[{"sig":"MEQCIF5bf7RL+X79TuVJrjBE37px1NBYSJaZbnG+5sn15IFYAiA62MPDOWzueqQBqenEoG62xmXDd4wguyqD3zc3P5CCWQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.5edf83a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23227207},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"5edf83a8d9b34fb257db16a1a80d4e7e1a54c346","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.5edf83a_1773046077712_0.6986555090696314","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.7620575":{"name":"remoteclaw","version":"0.1.0-next.7620575","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.7620575","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e2bd4aceebf0f7ebd930bbdc190c1ab110e08647","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.7620575.tgz","fileCount":2106,"integrity":"sha512-vpV1MAb3LSFCCKNHbHSHdx5LbyjD7T374FFLU0CrB4dKqfMmmkBoYrS+jAourRlPRiux2chWfPSAAjW+IsFRTQ==","signatures":[{"sig":"MEYCIQD6vb9idtzbbksuxDyMW5tlgpNAZKw4YxXbvyh8sMqxIwIhAL3ooVXChyaBhTC7UbSmZAtboiBptUNAaC8nr+cFw8sH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.7620575","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22998901},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"76205750c7e504d29cfbf24f7ed0b4cbc48ca296","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.7620575_1773047351351_0.7484372982385106","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.42e37d6":{"name":"remoteclaw","version":"0.1.0-next.42e37d6","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.42e37d6","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"df01963abe42c6ddfb63b4c35e542a889f6de3a2","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.42e37d6.tgz","fileCount":2111,"integrity":"sha512-NlQyGwHCXlfG0VzFvoY2Kxx9Z7CO/pKw8NK0YUHzf1Zy8d1fXE+4Y/pUT8FMBEcKjxEb3/RBVTfVUnKgGW8NDw==","signatures":[{"sig":"MEUCIAWuDMUWQXUGlBcsWSLqytteTciMP4eVLmknu45yIlqvAiEAyD62nrd8DgESwV4qOzAWXNCSqN1WtApRqAJaT3TJMXA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.42e37d6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23015033},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"42e37d6f9c0b2f749a258e0120c001bcdfa89892","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.42e37d6_1773049402907_0.8879179379558018","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.8eea450":{"name":"remoteclaw","version":"0.1.0-next.8eea450","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.8eea450","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"3924c8f00e47a8a7612bf1638c20be36bb5774e2","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.8eea450.tgz","fileCount":2111,"integrity":"sha512-nHDyLgbIkSAi303D8rPBsgFntdzzrU3VoiCi57M8twI3EbI/4O7ujbjtCwEGjryeMBPIHkADAVtd4kdY0+ddBQ==","signatures":[{"sig":"MEQCIDazsFFxrLdhCZuW74BxX91ldsxwSrS8KcJCFPuCnD29AiBnZ7wfOEuC1XRGUafP8z5rFEfe+eej8/DKMuNmvsYzIQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.8eea450","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23024220},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"8eea4501e88e26ff5808b689808efbbb084679cd","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.8eea450_1773049950943_0.042397858794119836","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.3d3c11a":{"name":"remoteclaw","version":"0.1.0-next.3d3c11a","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.3d3c11a","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"c755eb009ea21c0fb7c2a4cb909c23a7657fa011","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.3d3c11a.tgz","fileCount":2111,"integrity":"sha512-9Cw9ApNjF/laRPJkE3rjx4gwUm/NvglZ58wMBGoP5r+8oALDIBfYDvFckpj2i7YWxMBkdLjbQSFRpoXhBm1nAw==","signatures":[{"sig":"MEQCIEO+L5OBgG6WX1TW8vgrT0oTy7pOAdA5FHc/52CTRaDfAiAvaFnM1hg1DAogY6LGWnOBFvqejstNf64BBgPVNUva7A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.3d3c11a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23025123},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"3d3c11a40518a90947689af7950c5ad818243e01","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.3d3c11a_1773051432661_0.65220148347428","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.db8a792":{"name":"remoteclaw","version":"0.1.0-next.db8a792","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.db8a792","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"227a7f437aa225b56cb05b6d6a56efd8bae7207b","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.db8a792.tgz","fileCount":2111,"integrity":"sha512-zsU7SCxO/Fpp5wjhz9gPJi7SqC6pm8GMzsabgCH4C23y3Sgh5k2NoZBlmDOSMwL3rX+4fv/GBfUxGXrw5THZ8Q==","signatures":[{"sig":"MEUCIDmREtkLrMgqzbCm8ly/bVersUJF5KY7+0PmsNAtheCqAiEAvyjQnQmeuYpduTyKnssvyH2LOW5qm26aKu+i2gvUSVg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.db8a792","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23025123},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"db8a79203d797c06a8a5baa7d747241060da34b2","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.db8a792_1773051975112_0.5520447583044985","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.825d81d":{"name":"remoteclaw","version":"0.1.0-next.825d81d","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.825d81d","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"41082abdd21f17cd1361a7e934863cc7d3b32eda","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.825d81d.tgz","fileCount":2111,"integrity":"sha512-1vC3rTasC7gvjT1FTv3putBKv4BKa7MPofpkhKRObZaGiShlAIGSw/r/YgR+Rag5s7Qnih+RWA7y6ZPtgVkqxg==","signatures":[{"sig":"MEYCIQCflZJFP5vTNMW+43NMEtw3lxm9pDQ18p0TQTKKR8uH5QIhAOWtDiHsXMvXyXeNUOhkNzB58hCYGNHMzOYdrAAtVkYG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.825d81d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23025123},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"825d81de3610df0dcfeca3e26f90002f574e394f","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.825d81d_1773052524171_0.27678452426368727","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.f102a1f":{"name":"remoteclaw","version":"0.1.0-next.f102a1f","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.f102a1f","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"b251e73a6b15479896d946d3e1dcb40af44cbb3b","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.f102a1f.tgz","fileCount":2111,"integrity":"sha512-raPM2cruJ61mDOryTD/YreBWZ3kKw4FGe9B8Dm2WwUQIF2RAbiLJnoq/yzm1vZY4uMgM0jYRY1O8raRxA8eopQ==","signatures":[{"sig":"MEUCIQDJavJTik+I5Kzp3Wv9kwnZxtVK/svn17C7mml4/+PuygIgV/7XaotqbJ6TYeRsuKnIu5To0M5Jm7NkHTQk7tUvwxc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.f102a1f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23011681},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"f102a1f4eb2b24a82c0924bf226b0b20641a5989","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.f102a1f_1773053077607_0.9114986790999875","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.d57822a":{"name":"remoteclaw","version":"0.1.0-next.d57822a","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.d57822a","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"9d009077a7f22e33f62d4eacdd0b413503886ada","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.d57822a.tgz","fileCount":2111,"integrity":"sha512-0fpyofDsTtGbwoaLWblZ0QLZn2SAlVKX7vGt4G7FXMpLcB4k430txthFO6EIDPigviH2L69FOaHlttKDnXoFjg==","signatures":[{"sig":"MEQCICmTOXhMBucg7havSaIBWBWMKkA/O0v83gPMYwydhazaAiBo9RxSJBOPqn611dmrSn23Sp6KzBQBxS+BR9qYjWMuHg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.d57822a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23003297},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"d57822ae8c9f1cb30e25e24208d107cc589b695b","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.d57822a_1773053609559_0.14476439353144377","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.e6d95ba":{"name":"remoteclaw","version":"0.1.0-next.e6d95ba","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.e6d95ba","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"ee165612514e6f8a44362851a208aad348e5adcd","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.e6d95ba.tgz","fileCount":2111,"integrity":"sha512-Z8dgnFACNm0/qJnuN4VZr9I1I6djtOKt+YX1yPndj5sQP/SiUJHO6UnGhXkreAc8vx0EI8IyrBX+2ewx4GkiZw==","signatures":[{"sig":"MEUCIQCcu/enA2xkF3LlbBVw8KPnu2BhCvsXS871eB9bSOpoQQIgW0MVRzFIuc/gJQgYFp3JHgnoZ6sD97NZ9OXQXFua9pc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.e6d95ba","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23010968},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"e6d95ba3addb780c8bd0a72f12b63180e1e26f32","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.e6d95ba_1773054166129_0.07806647557949176","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.8c439ca":{"name":"remoteclaw","version":"0.1.0-next.8c439ca","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.8c439ca","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"c61f911efa7ca454d7b29ab1d39f77e14432c62c","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.8c439ca.tgz","fileCount":2108,"integrity":"sha512-yOXcJeiTT+7rduAsXPJNJcpPsGeBaSbcxgnOFeK9LeZlYDOas6a9+XW+byXheYZFBvXubE+YNZ0xe9ZRougnPg==","signatures":[{"sig":"MEYCIQDk2EkB82Cr+UsxJ/OH7hi3IaJisSoPyAT5eQIDT1/sRAIhAJ/TVLXrit7W5E1+F5Z28xS7XwcWb3eq0PQbV3IiMYV2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.8c439ca","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22957728},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"8c439ca689d0001e3bd08485904c8425a279090e","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.8c439ca_1773058389372_0.12050284758283625","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.79cc382":{"name":"remoteclaw","version":"0.1.0-next.79cc382","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.79cc382","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"c759f20a0606245f010c71e5e85795e53e758653","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.79cc382.tgz","fileCount":2105,"integrity":"sha512-s3i+ykjN0YSn3BvvwnPiDtwzf8qwhgZbn03vVfaBVQbK3I/yFXnueHLYpaNRXtrsMtHIzF5zgrlAnPkZ2bF5Ew==","signatures":[{"sig":"MEUCIECxNUYN5FSASlwaIIC8K9ImTl9SC4ftilDQbEKDZi3sAiEA3Ne5oN102GtsetKI1/20EgybhqwH0cN9dfvgRmWS8Xk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.79cc382","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22730463},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"79cc3822c0aa14e41d447650a0d3aababf871848","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.79cc382_1773062882342_0.8936106272055622","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.99116da":{"name":"remoteclaw","version":"0.1.0-next.99116da","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.99116da","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"65b3598d67bb0f2d6dde45f6ce5afd9362d3b0e2","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.99116da.tgz","fileCount":2107,"integrity":"sha512-rua66eknl+pYSLHhOo2FpCoRG+KJXSmFty/9J5insFTjqob7aEuYWYiqqstldaKwlB0b5aJLU0ZR7m7HVC0rtw==","signatures":[{"sig":"MEYCIQDeqGf2u7mFWcFC904Fecg2J2BDxCKMOYPDzECf5hPKPAIhAIqdjRq5CDcBTvnKdUlKHi20aHZqKf+2i/aF5t94iE31","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.99116da","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22684589},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"99116da82102dda33b2fe1e3e09a4ab891eb3f66","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.99116da_1773064618409_0.9449462206880537","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.05abcca":{"name":"remoteclaw","version":"0.1.0-next.05abcca","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.05abcca","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"2f23334b06fee0926c7a25a948f78a41c4d6150a","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.05abcca.tgz","fileCount":2106,"integrity":"sha512-e2H5bW5nkxx3uMelIKCFd1ArQ5m/TcpLdtxXZTYHM4thlgftT/EprKU8jM8FbXkXq3Gmo8iJYD9tzLwrLdC8Pw==","signatures":[{"sig":"MEQCIEB67vernX3Z6JJT7KaAlt6shC2izKMWGJZCb8fNhMYbAiAOx7AlMLM2aQ/Z1ig9JDP7ObgjrMWDE7Wy1/QdUrDkWg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.05abcca","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22674181},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"05abccad372d161a5f6c6e033375ec006aece44f","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.05abcca_1773065162008_0.1913974363963813","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.5afd4cc":{"name":"remoteclaw","version":"0.1.0-next.5afd4cc","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.5afd4cc","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f58d4097837d76b83bc5d9c3a809a1e61a58dd7d","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.5afd4cc.tgz","fileCount":2105,"integrity":"sha512-yl9wk2dHBqDLhC2QHe5mU+pNdZmzmFnmrt0tCUloq2NJksEjRWaBjLEA4bRG27lBdEXUnTD7ebXmzhgq7WiRfw==","signatures":[{"sig":"MEQCIC1R3fzDIkXRRs9QOeO7AKJqioOGgWHER8ayLrzlwiBJAiBKC71bMhbPjcQq30oKnTgsVGbZEgkDMv6hqInZvYUvrQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.5afd4cc","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22651519},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"5afd4cc43b8f3395d802e349ad5c21c7de399908","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.5afd4cc_1773065709214_0.7014677068529682","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.b723073":{"name":"remoteclaw","version":"0.1.0-next.b723073","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.b723073","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"2c3e8c8283da744bb550a02519c3b2c2c382d682","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.b723073.tgz","fileCount":2105,"integrity":"sha512-7UFqCCDpgVe6aAnVI+oLRW3mVMRwIkUvjDtyEN1FtT8zrClM1TVzLPAA9HPaAlELBOepBoQS1FuKLPD9Auj48w==","signatures":[{"sig":"MEUCIQCrOtz0qB7jRXoGMf02PtZgHOZHzvVHPyFYv3sO2JO0ngIgDBvVAH3q+4BF7Up2rX4ywHDzsI7wzF/Vby6hd2uAIyI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.b723073","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22651639},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"b723073bc6a7374bd4ef84e4109abca68df0052e","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.b723073_1773069660723_0.1885998258463908","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.cf9ccbe":{"name":"remoteclaw","version":"0.1.0-next.cf9ccbe","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.cf9ccbe","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e47ecc44717f9786d88c6359c01c63fbd3d6162e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.cf9ccbe.tgz","fileCount":2105,"integrity":"sha512-UQmCM5MF1kNcWTbkWMGOKhD1gbdMeOTFEsp7R+VJd7Lbmd4kQRCywidZRgUdmFaEZ03GTK4QGtWA0s783bVbrQ==","signatures":[{"sig":"MEQCIH6bpjnlPshzSj6qITRtmjKKHWd/ntVe9DFFEUHqYSrQAiBtWGRS3nB9Ue4SuG30mcr45GJrku/eLluJwJc5FNU9zA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.cf9ccbe","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22651172},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"cf9ccbeb70c962e11a68d342fde603388c232e33","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.cf9ccbe_1773070217779_0.3034333157884703","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.43e1860":{"name":"remoteclaw","version":"0.1.0-next.43e1860","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.43e1860","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"2f7a59c240a8948441dd28abd4dacc021f5822d5","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.43e1860.tgz","fileCount":2105,"integrity":"sha512-ouJmqzCLSKrtFQxK2VgS9EdEAiDsjA7ATK3Sr6kUuSRB6XwtNkVqmPYNA9SlRH2czayPDCEYlab8luqqEGWQqA==","signatures":[{"sig":"MEUCIQDk/SuVCQ6LaAv8Ief5MBG0OKcAvW4vX/b8klhSKa8kfAIgSeDhTJ1qtdJgglWnqgY+LuY573hGY11Jj6jVWk4D7Cs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.43e1860","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22652534},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"43e186096b9c07daabd43b0cf6133e9f6c593e54","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.43e1860_1773070778414_0.5167616089193081","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.ea8374f":{"name":"remoteclaw","version":"0.1.0-next.ea8374f","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.ea8374f","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"6aa6bf50b985f9db78134da9d004dc3cb3491f15","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.ea8374f.tgz","fileCount":2105,"integrity":"sha512-IJhCIlK1P09vtIVRKBBDHRKB5EpCzNusLw7qcidRiIrdOMnnrIlETRChz4zkcWaHJ9S1jXa7Y7afW0F/ieQgOA==","signatures":[{"sig":"MEYCIQCjUaqSvTowQdsog6SSAFeZhHnbc3X4tFWaOyXQQotqagIhAIJLKoJyvKOfgZ1jr7qiPdOaGl8La0czy4RDJQBQogFV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.ea8374f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22653074},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"ea8374f144bf4d8495998ddcc88bd3f05d25acb2","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.ea8374f_1773072214372_0.19155365304131045","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.a561008":{"name":"remoteclaw","version":"0.1.0-next.a561008","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.a561008","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"a6b284d454b5b793803a35bbe3f9c46ca6396804","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.a561008.tgz","fileCount":2105,"integrity":"sha512-9mDpFON8RIRvaEKSz05dee4odQ6dX2ejivxg7IRLlLeXgoY1rCW/hXcU1CRPkLJ9CNDUtrDOPazMiP3aManJ1g==","signatures":[{"sig":"MEQCIBDksPHjFJvvO0jzF2N+whNrcHZF9gQZCFVVxSfxDfFzAiBLRoGLvjDsl+UdaDQ/zZRHG/lTrE2TXE4ej9OhnD3Amw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.a561008","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22653416},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"a5610086b97e4d959412e4b083b7a0d825a3e6ee","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.a561008_1773072757034_0.5070678922323575","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.ecef372":{"name":"remoteclaw","version":"0.1.0-next.ecef372","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.ecef372","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"237bcadab6766f798a52b7bbc70cc6066d0defd7","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.ecef372.tgz","fileCount":2105,"integrity":"sha512-BMgGrrYQeCDhTxcfqYTUXIUaIlLA7aYIikV365TrM5PulLNeDTC3WWBQfDI0W1TIXXWzg93M8Z6YqoAdX1FfpA==","signatures":[{"sig":"MEYCIQDuniecZaLAC69qVd15Yh5Uy/qVipnHQmo0dwA5zpDRkAIhANcdskqEntIAb8O59kyostixuTePRthNZtJkF0XkqyoT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.ecef372","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22636297},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"ecef37253eb5250266dcdaab19d8a69494d95882","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.ecef372_1773073310059_0.4097791648048319","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.4bacc0a":{"name":"remoteclaw","version":"0.1.0-next.4bacc0a","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.4bacc0a","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"a08eac1c491e643fde1838f20c4f21a70d730774","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.4bacc0a.tgz","fileCount":2105,"integrity":"sha512-T1FkwMhIY8q0/gOqEgt9ElyFET+TZFRk5hnBFarT96ZczWu+CmYf3qugCHN6wPMshOXM/eDdnR8wGBqh864flw==","signatures":[{"sig":"MEUCIHXBqyyG731Ktx+tp7IrIrS8hiPsCTDIgm1QUIAiAm19AiEApoPtTaQCi4P9RDT6gFufLoHNTUw64oGawIG/0Dtw+Ok=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.4bacc0a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22618250},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"4bacc0a74bcf2dd2198c8e331983eb5b387a9267","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.4bacc0a_1773080100469_0.4549373271272481","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.e3348dd":{"name":"remoteclaw","version":"0.1.0-next.e3348dd","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.e3348dd","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"59e7ae361db4b33d3262ab277cb159c3e9b69a24","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.e3348dd.tgz","fileCount":2105,"integrity":"sha512-prY8pxE7b+0DE7KvLpvtxwTeMFnnCgo/+1C5H5UV7x6UQ9b56vDLVxZ60ufG8eMLl684b+qLByukkg7rfWlhOQ==","signatures":[{"sig":"MEUCIQDPuNVpis4ydHXMkgatRA6SsiySjPmBrp+XrGvppyeFcAIgExE90p632jk8B+SxPyeR/2UWCNVzEpmkzx1Lrb0wUD0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.e3348dd","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22622680},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"e3348dd6a22228d234cd79977eb837b68a2edf56","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.e3348dd_1773081514482_0.13847611798310555","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.51b3c67":{"name":"remoteclaw","version":"0.1.0-next.51b3c67","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.51b3c67","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"8e34530af867abafe961410b8aaaf0c82ccf21ee","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.51b3c67.tgz","fileCount":2105,"integrity":"sha512-uYv8lRsbZbUhEq+tXlFMaE0zqPi26aYFkPN0FnJzkvgUII9eKf3FGJXYTRLACtATO6rbfJXgQU5UhqalP15w/Q==","signatures":[{"sig":"MEYCIQD1FHzuQmptxQyq7pbbfU8mPacsLKfG5ncgq6hOEcgOQQIhAJT86p12wH/h4xtBW6GcQFHcodWPrWAUND4wwlnXaFvI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.51b3c67","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22622202},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"51b3c67955a6adaeceab3f76c1bc16cf19817304","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.51b3c67_1773082421524_0.6933947616467604","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260309220752.86ba4aa":{"name":"remoteclaw","version":"0.1.0-next.20260309220752.86ba4aa","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260309220752.86ba4aa","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"25967218de7d6f8755bb45720d48d38efb59cb56","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260309220752.86ba4aa.tgz","fileCount":2105,"integrity":"sha512-wYjQTcr+vg/0UN7nF+OIJ90Jr2V2MO0SC9v/cX8/LYTkKZVAS+gXDwixPbs3yL9d2tgR2vZCSWxp9CFQBLFb4w==","signatures":[{"sig":"MEYCIQCwKmgbRFMMXZ/5hl6mK31qAjkML+OXfRo4iRSNoU4XBAIhAMzmlvqJhmsK6+vfcASYLf6QXeydp0xL7RP5Bc56hwRe","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260309220752.86ba4aa","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22622232},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"86ba4aaf99337b6dd64372e7580c936de2a127dd","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260309220752.86ba4aa_1773094101762_0.2834212835321084","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260309221658.4026b2f":{"name":"remoteclaw","version":"0.1.0-next.20260309221658.4026b2f","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260309221658.4026b2f","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"73edc4f07bb32df26d311aebf9d4f5e551ca8fdc","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260309221658.4026b2f.tgz","fileCount":2105,"integrity":"sha512-MgwUjIlOAGRqTU6NB3gAKgwhHFupHyVPZkdAJTwt1/neVadkXv9bqEYA4rxEXR0Yv0+Dw/jks/C/9Xw7zR3Uvg==","signatures":[{"sig":"MEUCIQDQWMaaAIuBBWqCMhVVhn4tIN8QWrsttokOP1VpO86+7AIgEnVLIB1I/G675RTmu/6T72ZKZRmBBnzvXhfCT3NYlOw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260309221658.4026b2f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22627363},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"4026b2fae2637a781fcd2b52a87b700fc5f62fcb","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260309221658.4026b2f_1773094646771_0.3349985612631845","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260309224302.7900546":{"name":"remoteclaw","version":"0.1.0-next.20260309224302.7900546","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260309224302.7900546","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"6e05d3f75e4f6f1b890e60268c4f1592f0dcd787","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260309224302.7900546.tgz","fileCount":2105,"integrity":"sha512-lZqbvZzNtjZopAVOe6TW5qZgz9m9NznQ+asCRsNftRVftOnUoAjXNPHWgfpWHmFIoE97LFcs1xG7n1kUEFKT6Q==","signatures":[{"sig":"MEUCIQDGsTLI4xOV+Ry5Xsf5qSXq6nFJZdNemtn7K+r7x05bCgIgQNtY0qMwUGvruUXlf5gfc/XblZpGKLdxQzrgenBHHJw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260309224302.7900546","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22628925},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"79005464a587cd89658457b58101e2bba3a0e616","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260309224302.7900546_1773096211418_0.34072964059901456","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260309234412.2b212f9":{"name":"remoteclaw","version":"0.1.0-next.20260309234412.2b212f9","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260309234412.2b212f9","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"b36b22bada2b98c9edad91dd44233d64606f83d3","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260309234412.2b212f9.tgz","fileCount":2105,"integrity":"sha512-mLtU/wOm35piZLC6Ve4UdUM+3Su98BAGa/O1qEC8dmW2EFZqz6P+34xKI+6MeR1T6N5WKfAnfMyJKmMsTBvETg==","signatures":[{"sig":"MEUCIA9wHPIuyKZCxYzjfhJZKTHdj3fEObOJTxSFIbvm92o2AiEAiuJCaChSexjDFimqJ2yn8NA2MQLnnFINrGbvJjTOjU8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260309234412.2b212f9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22630065},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"2b212f960bc36e501cf637490e5893958445af36","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260309234412.2b212f9_1773099880460_0.25327734022089854","host":"s3://npm-registry-packages-npm-production"}},"0.0.1":{"name":"remoteclaw","version":"0.0.1","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.0.1","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"beffa71880abaf6b363c290e321db9240b876b7c","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.0.1.tgz","fileCount":2112,"integrity":"sha512-t2HhDu2shyMLz12NKkn/uyDbHDx6FbFZoojhDp/xHzZmN3LYGdrxpPwQk0vf+kZHhhAID052ncUvzGevwcA/Ig==","signatures":[{"sig":"MEYCIQDnFBq8eRbbhIGGEOykaxAlFhCEF+KMLs9GLchmCNgxswIhANxpQE691DcPkgVoxwNJWrnrS8l9kG22wc9cMvHZ3KHv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22721655},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"2b212f960bc36e501cf637490e5893958445af36","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"alexey-pelykh","email":"alexey.pelykh@gmail.com"},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_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.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.0.1_1773131984413_0.28204947240682854","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260310091226.6e094de":{"name":"remoteclaw","version":"0.1.0-next.20260310091226.6e094de","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260310091226.6e094de","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"1c232083475b038e5df276f3702abb5eb2e2d5fb","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260310091226.6e094de.tgz","fileCount":2105,"integrity":"sha512-ucW81tBT2fxF94iEraz5xYT1bZ4BfkN126mA1czHladdCqjrIBWFzVKAqa8PFSMr3eanAVLViYFR5YFKt121mw==","signatures":[{"sig":"MEYCIQC/iTfoXKR6r+XlqmXvErS98E1Issfv5HGilxPkqwNkGwIhAIeTyAkPzm0P/FrED6zz62FF89YpPBzQsUKZWuQ7ltkw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260310091226.6e094de","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22630065},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"6e094de51f7b4af947ec7fc7f5db77ecbc29a245","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260310091226.6e094de_1773133973682_0.4814514968467356","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260310092204.0696f63":{"name":"remoteclaw","version":"0.1.0-next.20260310092204.0696f63","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260310092204.0696f63","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f18f3b42617b6d6e8e185965e2c47f0e5a9fedd2","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260310092204.0696f63.tgz","fileCount":2105,"integrity":"sha512-a2PsNfwvMW6aUdapNELgiTkw2kZ/AkIyFeOSNr/rI6vJflEahU2Zev9TGcndK7I6U/VwodHseGNbndnGe1z3oA==","signatures":[{"sig":"MEUCIQDkx3tQBcZLhqkDf5KnB1dNwOXfVVVfrUO/p1g+EsWeNwIgWOlXoqmT8uap8b77pq3pGv9rh1WzvhuM6+zlZ0RfXSM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260310092204.0696f63","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22610066},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"0696f6306a060ea50f4eecb44d4bdc2f18f6b18b","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260310092204.0696f63_1773134552619_0.6784846524549348","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260310095337.b40dc37":{"name":"remoteclaw","version":"0.1.0-next.20260310095337.b40dc37","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260310095337.b40dc37","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"2059066bde2a51ecef52c2d1b8330d0451e3b6de","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260310095337.b40dc37.tgz","fileCount":2105,"integrity":"sha512-en5tuMJ+Mqs0krXKnywA9syrogoIDZZRCqK1RIerYfUm+ilqbxUXEdSgusoZAI51oWaoC+oPH8hMCPMsiNQbKQ==","signatures":[{"sig":"MEUCIQCuGdHYB5wbfWi4HKd0fPmWsSyLYioDf7ikwAyNM+VIIQIgct3asOpMh5uFUuWgrrwa1zifcbZ9aiGZ+HLzY6HPZ6s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260310095337.b40dc37","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22610066},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"b40dc37e5731eec175d0334fb13e484fe6106092","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260310095337.b40dc37_1773136444628_0.6208093855266679","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260310100243.25123f3":{"name":"remoteclaw","version":"0.1.0-next.20260310100243.25123f3","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260310100243.25123f3","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"a71299b2faabcc248c8410cf48382a4141df40f9","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260310100243.25123f3.tgz","fileCount":2105,"integrity":"sha512-MJnl/pfaRv3Iw+hCQj/SYfW1XOcrDK7L7ZSu5bXsBUbz6oAFm3qkZcDfizLTOTb0ggaMVajsDmr8pL/RWA1NIQ==","signatures":[{"sig":"MEUCIGyjt95q0/Hh+mSu9WkhrHLpSXgpQUATF49iuySBpmLXAiEAivvj3lyaG4jAFfsUkLw+WLHxAEi88O8F0UtRTDk33ik=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260310100243.25123f3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22610213},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"25123f39dc25b4b9b5af4b42a925470ad0786a90","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260310100243.25123f3_1773136994061_0.5156060595529184","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260310101150.fb95ba6":{"name":"remoteclaw","version":"0.1.0-next.20260310101150.fb95ba6","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260310101150.fb95ba6","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"304cd9ae06e5f47d49f7adc767eb020cd86d570a","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260310101150.fb95ba6.tgz","fileCount":2105,"integrity":"sha512-uiPa0ni5fhuwRmb/ZIM6z7uH55mSTbXOb3QsEQ5xwzQbtDJ1zG7FZNVL3U3mAJS0huujV8V3ANd9XuhXM5Bt3w==","signatures":[{"sig":"MEQCIEpKgjVN+687sA7JgCn7BeBlWUecmN16BiMGB9tx8a9WAiB0WCXU1wOOo/AlQyZiXI+E/pDJc13LGrpb6jOCjvv0Eg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260310101150.fb95ba6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22610213},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"fb95ba6a9433891b11e9889892c7e198188de925","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260310101150.fb95ba6_1773137539561_0.1287155862235092","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260310103443.f1ad21a":{"name":"remoteclaw","version":"0.1.0-next.20260310103443.f1ad21a","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260310103443.f1ad21a","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"4a203e04b8238f40d4df320a88db99fce04469e0","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260310103443.f1ad21a.tgz","fileCount":2105,"integrity":"sha512-Q9xFAblAQsZXBgzTCpfbwvKYeRtqPiP25EjVyfGY6p7Xl90/wiUGGgEcfRr5uj/PTv9HsUIXmjXqH/U54YiTBA==","signatures":[{"sig":"MEUCIQCHateqtDAlUlW3hpUijsryKwZN/86SKufi26X/VfU0RQIgA3u6FLLDk8xQgWrCzK7HlWcGbFXTsDIXNBX8/kH2s0Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260310103443.f1ad21a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22610563},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"f1ad21acb994ad0803cdefd2663b655e8be61e20","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260310103443.f1ad21a_1773138911777_0.6707022081651264","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260310104658.df8a32b":{"name":"remoteclaw","version":"0.1.0-next.20260310104658.df8a32b","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260310104658.df8a32b","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"1b1c8fdad532bb26712abd5ec9c8a3275d393b5e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260310104658.df8a32b.tgz","fileCount":2105,"integrity":"sha512-zZfoIDoHYGh32bJhqnH/ut8wIdst08EO1zTd7uw/cASAPuyxTEPup2Hc06ZNBzkztGpl9Iit2VRFRZMEPqLoSQ==","signatures":[{"sig":"MEQCIDH970s8dD/4ltuT8OX3gEaTkBiHAZF0v3nPwykxvktMAiBqa0zYNHh5VbeIp8EjLEU4tgR3ZSSLa+fs83o51Ebo8Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260310104658.df8a32b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22610989},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"df8a32bf054fa375f41796de8fe735d21b6dcdd3","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260310104658.df8a32b_1773139647581_0.7338827863114892","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260310113031.72ceeb1":{"name":"remoteclaw","version":"0.1.0-next.20260310113031.72ceeb1","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260310113031.72ceeb1","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"864d0649d68c3fe3aafb4d8f36bce35d4ddacefe","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260310113031.72ceeb1.tgz","fileCount":2105,"integrity":"sha512-lzJJDQhg6pPBRjpf5Am5cuYSb8B2BoZVDhhNLWaXQ/OR6BDtCtlK8vKHtZlaTfjy+fHcrjwc5zh8ZabcvfBnpg==","signatures":[{"sig":"MEUCIQCplDnSgx5wD2nU8Otfd4cRfpgbg/flu6WvpBz3rrNVCAIgJdsSElFi7aCJBSGgHIen0NpFKwLTei9Gdge2SJSkGt8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260310113031.72ceeb1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22610659},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"72ceeb11cdcafe751e41ff6eaeedfbb61479dd0a","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260310113031.72ceeb1_1773142260097_0.40064320199061143","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260311111211.c8fcd01":{"name":"remoteclaw","version":"0.1.0-next.20260311111211.c8fcd01","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260311111211.c8fcd01","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"2b028b77dddf6896774ce270e1f8bad3419a78fa","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260311111211.c8fcd01.tgz","fileCount":2105,"integrity":"sha512-H8GtVTG+5vmCeyvYwZLmrS4WVC3KaejxEOhgrFMtxWIrLpZqHUAnjJz9JvVUfeDrjgvR+LW9aLC7GxPB+UC5Xw==","signatures":[{"sig":"MEUCIQDrHPywtgQJmJlO6/WtvCEDQU/+jdBXtZGWTPidelltDgIgOQf8sW64Lw8995jjpTHjpG11wCzuhQ88b73liNn2qHY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260311111211.c8fcd01","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22619630},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"c8fcd01ff65e3260629123756a858fe216f73138","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260311111211.c8fcd01_1773227560633_0.26679822742624815","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260311112125.1f981e5":{"name":"remoteclaw","version":"0.1.0-next.20260311112125.1f981e5","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260311112125.1f981e5","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d68ed2001c1da478df639634790cd9585b9f83ff","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260311112125.1f981e5.tgz","fileCount":2107,"integrity":"sha512-E23R6Jh+7bIX5w7rdRdBuLN3CNVGjMHcaIYlYOGvId5l8iGuqA8YMk3Ma0J8QaKh4+BsJqfY7nrGgZU9KEF3tQ==","signatures":[{"sig":"MEQCIFoZOqZ2Q7SM3rE/ffYQU7i+crY9OxrWlw7oEGDPPATEAiA9WRjpTNGSVCn9q2amDwmO7SYetsBhMWoClEedyh9+mQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260311112125.1f981e5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22664179},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"1f981e57e6f7509313c4664fcae379842de9ec7c","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260311112125.1f981e5_1773228113755_0.4771511705601137","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260311113321.9fd5b72":{"name":"remoteclaw","version":"0.1.0-next.20260311113321.9fd5b72","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260311113321.9fd5b72","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f0aaae2388bf2d3cb25e4ba0b389003cb24566ee","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260311113321.9fd5b72.tgz","fileCount":2107,"integrity":"sha512-QbU9GlaO2Yoma9mlkXennA0LWmG0hh189pn0hkJ2wHHTSgbkcMbokIq6ehiauQK5mfhKCDAFSRHCv5F7heFbKQ==","signatures":[{"sig":"MEQCIC2kXneI7RBO8R3ba30uapfMQrXs9YAiwXx0htJUy9YxAiAB685FDm3kuy32WFCyxfW+Vh6gX9XqkZIl5+d6IJDiJg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260311113321.9fd5b72","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22664683},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"9fd5b720961d5e76847f32a4ba3139d91ebce0e3","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260311113321.9fd5b72_1773228828875_0.6285818470644551","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260311114304.c58b8d6":{"name":"remoteclaw","version":"0.1.0-next.20260311114304.c58b8d6","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260311114304.c58b8d6","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f8abc4c681b3a34c0d7168f170b1bde72f576f85","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260311114304.c58b8d6.tgz","fileCount":2107,"integrity":"sha512-nnSwO2oMGtsdvdB6WtLrdpOC4ai5Xo9AnHT4bnlLnMeRoLndMQVU4jDj2Snd3hV3tFNQZj6RNaEMiUEXqVXdQQ==","signatures":[{"sig":"MEUCIQDlqIGPhXBj88oyYh38yYCOi5vEzivdG3ZYaxj7H+AlxQIgRFxsJxrLn607UJht5VrZGYsZVMmZrSZoIJSUFj5ABeI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260311114304.c58b8d6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22665915},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"c58b8d6a939d064b0c871bb268f2d630e5167e6b","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260311114304.c58b8d6_1773229412160_0.553140688615922","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260311115207.3cf4a4a":{"name":"remoteclaw","version":"0.1.0-next.20260311115207.3cf4a4a","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260311115207.3cf4a4a","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"ac104abf7c47d262fc0ae7a606a375e4401c544d","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260311115207.3cf4a4a.tgz","fileCount":2107,"integrity":"sha512-7OiLcoDgQxbg6c8jz3mZp+YKhqQS9/kNP65DF5nnnoDUomtbAs4cc+pO4XcRdboEgqhiX3MkzjS+A+3q5HJO5Q==","signatures":[{"sig":"MEUCIQDFp/hsTqIYpW4UE+I5gY4Bj0Cg7XLPJuzGoFeNKvAP+wIgeuh+5Frg0+ILykl+H5QvensKzMcayq22YFEv7ZP0MVg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260311115207.3cf4a4a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22668624},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"3cf4a4a33f836b3902ef5433841d59ee800387d2","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260311115207.3cf4a4a_1773229954590_0.1613637001339674","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260311120148.622eccc":{"name":"remoteclaw","version":"0.1.0-next.20260311120148.622eccc","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260311120148.622eccc","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"c0e0788d68bb8947f8921522f80fc94ee1618a5c","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260311120148.622eccc.tgz","fileCount":2108,"integrity":"sha512-tvx0ZHoKzGg9te+G3I2UEWrRhyEveQUVaKxqeXNs7BzHXPTaZwP45KpaKUMvHIYechI/kA8Q4j3Zi8ZJlhIjow==","signatures":[{"sig":"MEYCIQDZRU8Yl4hxH/iJGib8Lch7cKwoToQUdFA3gv0GG8kbaQIhANmBSEv00M9M+Goh3Lg6S+HnnsdvMAc/i2J3vNQzH37/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260311120148.622eccc","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22668439},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"622eccc477f569f45dfea8150fd319f8a6e7c08a","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260311120148.622eccc_1773230537326_0.9937255075628617","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260311121007.b13ae76":{"name":"remoteclaw","version":"0.1.0-next.20260311121007.b13ae76","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260311121007.b13ae76","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"9d400ba4acbcceb6eea5d9794773644a07716983","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260311121007.b13ae76.tgz","fileCount":2108,"integrity":"sha512-PexvKob57FK7QD5p8xrpQU69nUzHoPGsuvOdclcI0NiJyEIrBY+OLQdE9xr+0yIyA7ZnE4PR7Vc+/mMz61WM6w==","signatures":[{"sig":"MEUCIAPoXAundutLFWhM6V4nf4FyKRIlXQ5HG0kHUeyE6G0oAiEA4cj5vdBOhztdcuLZbCPIAf+e4A7LKQhK3OIw26VlKZk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260311121007.b13ae76","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22666047},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"b13ae7644dc868c5349b19420b94f3e924721bb4","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260311121007.b13ae76_1773231035418_0.062476650357393915","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260311122444.6b21824":{"name":"remoteclaw","version":"0.1.0-next.20260311122444.6b21824","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260311122444.6b21824","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"8f3cc49a6ee5f374be2054f17a2b0d7d028a1250","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260311122444.6b21824.tgz","fileCount":2108,"integrity":"sha512-6Pyw6aGiHLIgc65QtJqXSsWmpH7/3NNbHmj/oIf/kolJKNbPdT6HbisOGbY+b6cY0yz5s33SOohm5DiWUxopGA==","signatures":[{"sig":"MEQCIFKAr4TW0wZOcCBf1MwwPn138vkN5g2wQyFsEcJ1bf37AiAVYMNWrs6uJwaRAgjqu3K2bDQ7XKIoDlSJDzr5VVjJDw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260311122444.6b21824","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22667917},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"6b218241840464b0dd5e5c2c5c080726cf1e3d33","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260311122444.6b21824_1773231913179_0.5912618210738358","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260311123421.9dfa295":{"name":"remoteclaw","version":"0.1.0-next.20260311123421.9dfa295","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260311123421.9dfa295","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"dae1d6200b4ef00497b1a139cc72431c6b507214","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260311123421.9dfa295.tgz","fileCount":2108,"integrity":"sha512-VnmWF5OZG/1PBSwAFYpA1ZSgMFzAn7iWGQOokTaiIFAHSISXVO7T9ZE+BWB4gvWvnWnwfx7HKShGmpKlf2Rx9Q==","signatures":[{"sig":"MEUCIQCLBXJTbVfxT12yhbEknUA2NXH+5QZA73LhHPnVyh2ehgIgD0HIgtJgl7wYvrag++G5QOShFItfP5zOdq/3a11D69M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260311123421.9dfa295","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22668421},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"9dfa295f7d237120a144ab109bd2439ef87e21a6","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260311123421.9dfa295_1773232489003_0.190575290781146","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260311124433.847aa43":{"name":"remoteclaw","version":"0.1.0-next.20260311124433.847aa43","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260311124433.847aa43","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"8c8e3c2c1e777dae03870a8878bb4daf905dd68f","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260311124433.847aa43.tgz","fileCount":2108,"integrity":"sha512-DjghEhMek8Hnd6iDGI3ZR6azjyG968+Sj3lQv3du+mPymu1hamAu97ft/yKiDUAlHbO88tj3d8e4YkBJD7aiVw==","signatures":[{"sig":"MEYCIQDxQ0/2j9HhQtR6IlJKrkoCp13hzyxvoZjeLcbd2c+JLgIhAK9x4jDbXaQ79fpJmkpFtTtboJnGsBrKWlrYnmTWn69+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260311124433.847aa43","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22668759},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"847aa436816095f4dd09d21824c0d32d6ede3ad4","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260311124433.847aa43_1773233102777_0.4623629844833306","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260311125345.fd0ce88":{"name":"remoteclaw","version":"0.1.0-next.20260311125345.fd0ce88","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260311125345.fd0ce88","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"941e323bcdbaf4388115bfffa1f9829fbe4e203a","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260311125345.fd0ce88.tgz","fileCount":2108,"integrity":"sha512-otDmBpCZRIiYfDm6BhgmKmpBVVKf4O+XEf7gZLeDC5yJ0RMTSybvMwcrFRfq1H/XGEjp+M8qlen0wAI2GAoYSA==","signatures":[{"sig":"MEQCIAixlIurZnPFyLU4CmdR5NUB7vcExJ0/HXzuUl5hJKq/AiAAocnetnMCmjMgodBmiaG6y+bwEPNtN/TmwgpJkWxhZg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260311125345.fd0ce88","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22670577},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"fd0ce8836bc0e67602a1849b2752a53fcc3916f4","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260311125345.fd0ce88_1773233655682_0.8769951946512433","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260311130638.2cb82c9":{"name":"remoteclaw","version":"0.1.0-next.20260311130638.2cb82c9","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260311130638.2cb82c9","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"a3d620dd410a9aaf0af692dc7d09d236242e7c11","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260311130638.2cb82c9.tgz","fileCount":2108,"integrity":"sha512-EB594SvRmHp2KxZmR1WvbaKObpJ5y6xH5Ran5azCHErGisoKVO9OdlOfLKEhKTKtGtzO6YROX9wkvrxjeozQJg==","signatures":[{"sig":"MEUCIQDchvpzXCkTCtmSiDP/Zqe77SCYgiPXLgfIF2Oc66wiGAIgfMTuqQH4s9i28NmUDvdeZGPlIAoJC2HfmPqzfP2yga4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260311130638.2cb82c9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22679555},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"2cb82c9f0c05dbf43a08fac09626184011944a93","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260311130638.2cb82c9_1773234427842_0.5134359667484505","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260311131830.8d83abc":{"name":"remoteclaw","version":"0.1.0-next.20260311131830.8d83abc","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260311131830.8d83abc","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"c58327fcbd2abcca3d94b9eec57c88052b93690f","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260311131830.8d83abc.tgz","fileCount":2108,"integrity":"sha512-4VusOkdFB3Vb79UC2bp/6T1Fz7IKkrp+P7U/G2vp3tzKCkw/9HXChxwNsAvGxIukMo2BpnDDBfe+JVNUyszxCA==","signatures":[{"sig":"MEUCIQChHZv0TU1P2ZjTSkDwnTg8uGPFrLIdyyhHB+lInwQxtwIgA2X/d7MxXt1yiSe7Q6u5MTbIaHnidvs0sO0eH0/UNyE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260311131830.8d83abc","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22680217},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"8d83abc7f719a021cce12421f61dc710ef74d353","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260311131830.8d83abc_1773235138657_0.07649456627999518","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260311135008.aa88609":{"name":"remoteclaw","version":"0.1.0-next.20260311135008.aa88609","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260311135008.aa88609","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"237c54ef9c2f4d17f6adc0d2849b30c60dd29030","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260311135008.aa88609.tgz","fileCount":2108,"integrity":"sha512-J3htYhj+WO/RH/pmWBWqfcL/tbwAbt/uE4PiPZtga7P8eYhOaiKNN0Un6YdiXyKZS37tzstsmEh+Tlly59vzbA==","signatures":[{"sig":"MEQCIBPSooX/jNbD/3FMTrjg7YqZdwckfH8sXFGWUw1o13xvAiAyWQMDpG3OO9Edz/ue8StD/6q9vBqtpW/2iPEweVzerQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260311135008.aa88609","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22679871},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"aa88609ce7afbd814ca92f216fbd460b1f08e9db","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260311135008.aa88609_1773237037484_0.806885152617002","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260311142345.659471b":{"name":"remoteclaw","version":"0.1.0-next.20260311142345.659471b","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260311142345.659471b","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"0c96ed7be3001d9983287f92decf9753c510bfaa","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260311142345.659471b.tgz","fileCount":2109,"integrity":"sha512-h7Qv1362qVxdbxFELLxZ0NaTIdbmhqvh4pFJ16eMzIATMcCc34we7YKpjj4DcLsOIKKTGe4CMKICrRYPwgefDw==","signatures":[{"sig":"MEQCIEpUAcRa85cQcTcFsK36Jyj2oXLrs8KEi1l/tbt382kqAiBGLeVgY2MHG+ACQnxO/N+FENsaX7qVq6Mc+opZWEfRkg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260311142345.659471b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22684163},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"659471bd3ec2c69110d5cbb0c2d2a4efb583e9d8","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260311142345.659471b_1773239057648_0.0943674681172717","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260311143327.efbc737":{"name":"remoteclaw","version":"0.1.0-next.20260311143327.efbc737","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260311143327.efbc737","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"775473a1f5e5f145fceb86903affb10e1444bbf0","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260311143327.efbc737.tgz","fileCount":2110,"integrity":"sha512-jeaJPzrgdRyQEBpNnpLYP74NK2FrcGdqeDcns13SMq0rZSCt7GJE/P5GRk9R1LL1pJbGW43jiE7do9arnwsC/w==","signatures":[{"sig":"MEUCICNOwlnsd5Q0uaSy9WUAMFdqXzWO9Ua6rQ4sQH0XO1HHAiEAm9eh3h3bKyrrkjHi4DqWHkAK8wsz2IIA1kaiR8ZCCEA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260311143327.efbc737","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22686682},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"efbc7379d7db14b34e0bedd7f15c61b4d66b8b74","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260311143327.efbc737_1773239635984_0.703296212284213","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260311175548.08b0da4":{"name":"remoteclaw","version":"0.1.0-next.20260311175548.08b0da4","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260311175548.08b0da4","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"ad8e72dccd29b5780784007f008eda0d1d06da6e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260311175548.08b0da4.tgz","fileCount":2110,"integrity":"sha512-ia7E6GZpFxpWN2vazL+ol+RFarBytzPpbAaaq9lfp9E6n4wEPptosfoOcDMG0lqwvxBZQJpasYWn+B2gRRnGLw==","signatures":[{"sig":"MEYCIQDRaME99jjna0cbBCeEEvNVnpSZX7kdf8aGksYeERjAHAIhAK3vmELFiKrZHpe8qAG4rFqv4kUbA2+yOP9E/T1eQEoo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260311175548.08b0da4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22686838},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"08b0da4cb7ae84db2bc6f9e6bbd9a815926516cd","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260311175548.08b0da4_1773251777850_0.4100899380495042","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260311180717.b8357e7":{"name":"remoteclaw","version":"0.1.0-next.20260311180717.b8357e7","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260311180717.b8357e7","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"351a9e0fece047ee60824575da3dcedabafef9fe","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260311180717.b8357e7.tgz","fileCount":2110,"integrity":"sha512-9IMWaCyxrY0ne7aVUTF35r1qSYxFZEXwARnbZXu1OofWEIORRGSZepNCMdRN3b/HqT8wpVJONBIKj4idOtD3Fg==","signatures":[{"sig":"MEUCIQDjflpwHvAbibHueb4zJTJEjoUeMDkRPhY1EmGhVZeGYwIgCRx4SDlgswBCMgP26Qxkk1fb63HPsgqiZzI6eqDVoMQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260311180717.b8357e7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22687584},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"b8357e7c0846bb907434d17cd5a2b52c287c9948","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260311180717.b8357e7_1773252466188_0.8437428683468189","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260311181601.2578268":{"name":"remoteclaw","version":"0.1.0-next.20260311181601.2578268","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260311181601.2578268","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"9aa568d8924beb6cb95028217be6c3304d051f8c","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260311181601.2578268.tgz","fileCount":2110,"integrity":"sha512-8pts9cbmcSyBbD+8os/rKED4uFsDb0If+r2rutf8+VvlrWY0Fgk64M1KfkBZWQZySLTS9mYynwj6ulKCT+DNSg==","signatures":[{"sig":"MEUCIQDFwAy8x7NkNypww3nq1y0e/X4tSYmSQOfVCCuBaQXsZQIgN6fv99zf18A/5rkk3IqWZ01fPc4t9oEaF8MZkkHZfho=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260311181601.2578268","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22687845},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"2578268a33f6d5d1ee2c9c60f66dcc73bacfe93b","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260311181601.2578268_1773252990339_0.08376385946939635","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260311183847.4442d21":{"name":"remoteclaw","version":"0.1.0-next.20260311183847.4442d21","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260311183847.4442d21","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"3f9acf7d1af8f2242dca0d6cb6f2fa4bdad868ad","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260311183847.4442d21.tgz","fileCount":2110,"integrity":"sha512-iBOTXBFokZWpEpDDCE5n7MbMVRWabowpZJQRzHBHVAtgjvVQ2quvj4SnH92rWRMn7PDz353+JLnsmyTVq+4N+w==","signatures":[{"sig":"MEUCIAc1a6U3eZOacFWITHAvPX/nrS7L8e4YQQyD2PD0+5WUAiEAw4K7jkobWbHPH1tg7bjl9Drv80Rn7ICpmp797quMghM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260311183847.4442d21","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22690437},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"4442d21f644602a848c52bb2cb2d7792ad620d75","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260311183847.4442d21_1773254358722_0.5223266765646026","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260311191412.dbf2c9e":{"name":"remoteclaw","version":"0.1.0-next.20260311191412.dbf2c9e","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260311191412.dbf2c9e","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"7be785c2800c6ffe0d9a3b563dd01e3e3f05b499","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260311191412.dbf2c9e.tgz","fileCount":2110,"integrity":"sha512-hJhl86F9VXe0TwQfjxQ2Ikijt+lGiXgrXw4KsF/GKqrNmQAkq7srDf9h+ZcLh1rPF5SN8DdE+9Lcb4A2C9wm8g==","signatures":[{"sig":"MEUCIQCpQzy3Ly7r4RJaMLsdX1h9FgaJX7l/dTLcxL1gLxP63wIgc3K3Iq5uEHIinFyidPdbez96esMGyt53eIOCiwRb3gs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260311191412.dbf2c9e","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22690433},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"dbf2c9ed0bc65ccd27587d65abf41605efcbaae4","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260311191412.dbf2c9e_1773256481325_0.6681250477118221","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260311192824.6a5196f":{"name":"remoteclaw","version":"0.1.0-next.20260311192824.6a5196f","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260311192824.6a5196f","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"396aa05e8f75bf067eaca8a4f7a674346b2d2b24","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260311192824.6a5196f.tgz","fileCount":2110,"integrity":"sha512-gpB5AzNs7zzvuhOWHQgF9K11nvUIaHTm1lfUlF+EaPAfdIfoGY2AZMIIvt4TN91gcLmj0deZoB2REP3cMVBD+Q==","signatures":[{"sig":"MEUCIG6HQXP6jPuUCVPuEBo5vg8LZM9WRJjuGGDah+oDe0/kAiEA09dDTP/ebXaJYW6BmzPCI+99Lggy8Nga/QabJw7/iOw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260311192824.6a5196f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22694385},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"6a5196fc8ee2369b02dcd464ebee1124995651d1","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260311192824.6a5196f_1773257335613_0.8086863361093386","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260311194013.44072be":{"name":"remoteclaw","version":"0.1.0-next.20260311194013.44072be","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260311194013.44072be","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"7cd88c0770cfaa03a6f2166f76ab394f5edaec10","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260311194013.44072be.tgz","fileCount":2110,"integrity":"sha512-+WxGWJP66d1MFXRZ/cX6kBcAXTKRdkInl9wAxpqIdCmd2vrqMne3qYfIsJE9UEjbvKNlKzGv1eG44DI6eFMoaw==","signatures":[{"sig":"MEUCIDPzxXTufmVmv/5qv6xjSUPLLwlVK61gsyl7ENzdFGLCAiEAisOlnGv5WBzpwMM11luq+O2m0KAGSeuRXDXWONEnNzU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260311194013.44072be","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22697201},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"44072be1e52c3a2d77756005c8c69bb6cc5e2dea","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260311194013.44072be_1773258043315_0.10109731771364627","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260311195853.bddf577":{"name":"remoteclaw","version":"0.1.0-next.20260311195853.bddf577","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260311195853.bddf577","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"906c39e515f3d5e8448c6b4192bd7c0a26b439dd","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260311195853.bddf577.tgz","fileCount":2112,"integrity":"sha512-CxN23p/NQSQfmUh8rwhCpwBa5DaJUEDS65An/q9eEkQ38YpPd+sFRFJ8152kdQphmXUitxszSZj2Q7eGPmvgrA==","signatures":[{"sig":"MEUCIQCbiNeM7/TqbRVd3buiPY4gafsuSSQCR3qF0zfbaJ39hwIgSxeE7nV5v8i+ngfE8w8qE24bWBvWO67NFgmom/KVzzk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260311195853.bddf577","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22697807},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"bddf577cef22862d6600745d6f224d4e7eb76afe","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260311195853.bddf577_1773259162987_0.34898121963120365","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260311201121.a7649d3":{"name":"remoteclaw","version":"0.1.0-next.20260311201121.a7649d3","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260311201121.a7649d3","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"ad70d3e0f8125fcfefc3c378da93e4ae2b1a205d","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260311201121.a7649d3.tgz","fileCount":2112,"integrity":"sha512-HhyWZz3oD+Xpx7MzBgdTbFgoPdz58+Ckl59ilrUOYrHFWJqaF7hf/z/Jaq64q+6eahVwzCsiMV9wIfb0yPHpBA==","signatures":[{"sig":"MEQCID/VrfF74EE34CyT0D6zcLWqwi+/Qv14j9uqFcO9SJa6AiBuCY8XNV+0eRALfi0PVukOUip3gs1aSSXv0P5DnwojfA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260311201121.a7649d3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22722505},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"a7649d3ea9e077fcdbe0bc7ea7da1cd1b5f09108","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260311201121.a7649d3_1773259911088_0.8907429492295504","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260311202849.4599d99":{"name":"remoteclaw","version":"0.1.0-next.20260311202849.4599d99","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260311202849.4599d99","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d253a076e46fa27e7cd96ebf0d7bf45915a475be","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260311202849.4599d99.tgz","fileCount":2112,"integrity":"sha512-nC2nKMRjwIa7guZVPhWbDe47EENy4CNPTqGZJgDBoejXROZPnHN2QAUeCwyzMrpeoT6zoJ2h/kMlplpYWjUMCA==","signatures":[{"sig":"MEUCIGfAPxylsjYqItzQNzjbkxfbc7aUzvTHXFdSYrrM8rZVAiEA01/ZWehKA0Sf5roCEZwVrFzlowqXZMsnRxDp2mkD2NM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260311202849.4599d99","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22722307},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"4599d99cf0c93b8c4e29db777c8e4fccfc266d30","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260311202849.4599d99_1773260958294_0.2021833673009421","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260311204040.1902ae8":{"name":"remoteclaw","version":"0.1.0-next.20260311204040.1902ae8","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260311204040.1902ae8","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"a5ce48e3a2739aff90553db707d8e9688d1a00db","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260311204040.1902ae8.tgz","fileCount":2112,"integrity":"sha512-H19fhB3gPSPHl4f9MYF7iTm3Yh9xyDFqHQYZiUM9UNM3VDY9m+0zjHKKTWTa8gSpxxqvyqLv0hXceFnFKWmPfQ==","signatures":[{"sig":"MEQCIFZyJ3h2qBCCO2jQ4XrMx3VhRIPJYeanCAQ6F2owmx+zAiA9tyMCx8NI5bnXhdF6DvzOSomJFT9UBLOQlu9HW3rZKA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260311204040.1902ae8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22722685},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"1902ae8128800b16a605dc45b6302b23053eaba6","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260311204040.1902ae8_1773261669362_0.852298451890187","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260311205206.5489869":{"name":"remoteclaw","version":"0.1.0-next.20260311205206.5489869","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260311205206.5489869","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"63a4354b17860dccbfec5b18e0a806095093f172","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260311205206.5489869.tgz","fileCount":2112,"integrity":"sha512-+mYAYf9C1gKNwppKve9Yp35WoOB+vuWTHPXwBiLNSXvjlg0PE9km70i9tgtJcKrHGAp2A4Fl6p76uVhNm4lfkQ==","signatures":[{"sig":"MEYCIQDouh9aXrflPX23M3kjFYHaXh/2tIXs/PcOtGBB3wjnlQIhANFIJ2f+2crLw75PDBckFkua1ZzVvDoa/9BGjOkXsK3z","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260311205206.5489869","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22722681},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"54898693af42511e1ad2244385f88dd4d390bf52","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260311205206.5489869_1773262354971_0.6584602148788794","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260311210226.2953e8c":{"name":"remoteclaw","version":"0.1.0-next.20260311210226.2953e8c","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260311210226.2953e8c","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"ee451298b736eb946c9b43ca82f9fbaaaaa48d7d","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260311210226.2953e8c.tgz","fileCount":2112,"integrity":"sha512-ZG9DXYDHZgZ7GI46fTeb66O7KWG6k3NefqcyEOObSSCkmuNABl9s+x5Cxe5eCxOMWNtVf68Gjf+tcKOLP2NYxQ==","signatures":[{"sig":"MEUCID9GIOdkja69i/tVGm9195Q6Mzz8i0g4yWl9EArv+mN7AiEAvbcQ1xEzVKQbRKTu8BNvaRbxovAzLG8gy0VLjIi8Yyk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260311210226.2953e8c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22724533},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"2953e8c30075f81c53e729b4fe497050cf129aab","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260311210226.2953e8c_1773262975033_0.3010591027509104","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260311211202.3306d50":{"name":"remoteclaw","version":"0.1.0-next.20260311211202.3306d50","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260311211202.3306d50","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"742ae3988b62c8fcaed2d0695deb1aaa12d22b25","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260311211202.3306d50.tgz","fileCount":2112,"integrity":"sha512-Cs1Alu0EKqF06M9fYMF6cwR4PJZO6yyTwVUWkgPA7ZJOt+JKO7elxXpXqdvCBCwwXg8OjjyVbVCYMOtq58XGwg==","signatures":[{"sig":"MEYCIQD/oee2cs9zMfyMdnb99nckjleZPzKPy6Epj2RAI/JjrQIhALWS/9MarFvkfMxeBB4TwXkNWSXQJs5TiUe68J3r3mZk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260311211202.3306d50","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22724533},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"3306d50697b75c78f1996d90d527b7432af6c8f1","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260311211202.3306d50_1773263554265_0.8424792677678401","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260311212401.ac5cb41":{"name":"remoteclaw","version":"0.1.0-next.20260311212401.ac5cb41","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260311212401.ac5cb41","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"c868924fdbced07206242dc467d78720697afca5","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260311212401.ac5cb41.tgz","fileCount":2112,"integrity":"sha512-ANtY+/RgbEK/l5NOMUaFv+NSRa4wJXyjw+zx7PczXeHuQPTqZ1SznapcTKXfdb6oWZ1U/3yTyoms7bBvoRkisA==","signatures":[{"sig":"MEUCIHpwhbbZYxNu5bi1D027T9OGkU5mFymv0LfRXE+IkVwbAiEA8+M89ASL9781vGqApaEmroOsEae6N+KcFJGOBB5tBoI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260311212401.ac5cb41","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22724887},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"ac5cb413e16e0498bb7696895c979c54a6956e9c","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260311212401.ac5cb41_1773264269827_0.1807094957292532","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260311213422.257c063":{"name":"remoteclaw","version":"0.1.0-next.20260311213422.257c063","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260311213422.257c063","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"4a71fd5aa141816007516ed423ae5e0ec6c69b07","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260311213422.257c063.tgz","fileCount":2112,"integrity":"sha512-lMMUznERRUzWhYHGXGTlPZjI2+bWnBEShH2isrTrock8+ihedHNwfj8INsJ+n5DdBj0yWXw8OCxvePU2YmKscQ==","signatures":[{"sig":"MEYCIQDN199+1OtmvRmpP6yYvIswETv+Pk1p+dIgMxkyhIqWqQIhAN/qnlHmAN7UmnQFE9MgypLfiGT3E5IfIbNBT9Dmbrbb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260311213422.257c063","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22727199},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"257c06371f9da423a21cb29998610472e6cd2a0e","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260311213422.257c063_1773264891386_0.1763341849596911","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260311214419.b8aa123":{"name":"remoteclaw","version":"0.1.0-next.20260311214419.b8aa123","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260311214419.b8aa123","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"a6937113c4a810e5c1e92d1ce55dd2a0a8347124","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260311214419.b8aa123.tgz","fileCount":2112,"integrity":"sha512-0n9l0gd/ubBrfMjimVvMo2oo8MH70DzbST/J2rh2Z21GcQ5z7DeEScv3/L0bEbAOxUkSmLvtqCDuEam4iEkxGg==","signatures":[{"sig":"MEYCIQCp7oyNs86G9YBKk32QGUAO1HzeXDl8OMOg2XokXMs9ugIhAMD3NoNizqEHaTGogeCocVAm5Cu/IOVwVphI5A51X1Ep","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260311214419.b8aa123","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22725844},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"b8aa123e6f4694183ee87e2d4eea12d32be5c80c","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260311214419.b8aa123_1773265487314_0.4038441967352524","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260311215948.6971818":{"name":"remoteclaw","version":"0.1.0-next.20260311215948.6971818","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260311215948.6971818","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"705069a38892688811230d03541920edde6b1196","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260311215948.6971818.tgz","fileCount":2112,"integrity":"sha512-BfqCWOqA1TOdlWkuS3JD94xt3Y5+DHzm/tTlqaLykpZaM6GP9d5a/KvwiNSd7Y1Z4VWTbBKDgB8D8vie4Qy+tA==","signatures":[{"sig":"MEQCICl2eIB64Lhj/X8rCJys8Ye1QTiXGfJfGKGxeAsJoFP3AiBt7vuXioa235Yfogn7Gkyr4Mid7WMkF2XNhWrx6ndXbA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260311215948.6971818","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22725844},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"6971818515a0a1da1b2f22da04a6c298714590fd","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260311215948.6971818_1773266417460_0.37781111229476516","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260311221318.3aa27ea":{"name":"remoteclaw","version":"0.1.0-next.20260311221318.3aa27ea","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260311221318.3aa27ea","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"bfebbb267290f54a5d6a5c517bccee93a9906f1f","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260311221318.3aa27ea.tgz","fileCount":2112,"integrity":"sha512-slL6fvsnyDHBburcB34SIgtjQW5X/SZfdrAGCMe1GdslUNx7NeWxyudf55cPX69q9bevzEAuCduYPgn74aeYzw==","signatures":[{"sig":"MEYCIQDU/FPlrPi6l9qG9DUew4neTX6BPuZpBlGgymuVrHxRXgIhAIHk+zObJU6oGPKRzVjnM4S6OOpCqfWWa/zAR5tkkP57","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260311221318.3aa27ea","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22725620},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"3aa27eae3f6f714484b88ed4f52901955fe09803","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260311221318.3aa27ea_1773267228032_0.9616329446766421","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260311223112.d9c5724":{"name":"remoteclaw","version":"0.1.0-next.20260311223112.d9c5724","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260311223112.d9c5724","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"0c710c30495ae4b583177307bac1d528f75a9687","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260311223112.d9c5724.tgz","fileCount":2112,"integrity":"sha512-t0HIsWn2suR4UQYnhkmh5KVvtINQgCX2ucM8i25AVB5YzvicvvhO6h+JQspfB537Qv31kjWmcOl3CopTUB6aig==","signatures":[{"sig":"MEUCICnw9aOxj3lwmK+9k1igQSITtJTeZEfIU4a2xNgazVFjAiEA2BYwXy+3xIuAnJ+8uDJn4eQcI8kCKLj3+3X8KC4NqSI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260311223112.d9c5724","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22726141},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"d9c5724fe1df4d699b4abe9f1eab3770c15c9d50","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260311223112.d9c5724_1773268304821_0.7542453692654207","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260311224126.4181b32":{"name":"remoteclaw","version":"0.1.0-next.20260311224126.4181b32","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260311224126.4181b32","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"2d4cb6c39563e660130622685f7a704a78d95960","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260311224126.4181b32.tgz","fileCount":2112,"integrity":"sha512-L4pmlQmpqzcRvt6GK5KR8aepvY+eXCwXhvJHrKZFJRLFQEeLNdHqY/E+UviGR80bDgXkvXDuI47XnDBHy4olEQ==","signatures":[{"sig":"MEUCICrgq0xTzeK4iYdbYFGoAXLLS+fnOt3VTPpXBE/HhUykAiEA6HGNMMz0cubnBLOB/MPr4KA7Y1amfXrhxq9mOCvf51E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260311224126.4181b32","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22724305},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"4181b320c5beb2a6909000a67553d6f2b746bcd1","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260311224126.4181b32_1773268915476_0.5435128393257058","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260311225043.93e2321":{"name":"remoteclaw","version":"0.1.0-next.20260311225043.93e2321","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260311225043.93e2321","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d2d15bfee4417a3900b26c2fde11667e438dc56c","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260311225043.93e2321.tgz","fileCount":2112,"integrity":"sha512-jTtsduXH71iOYMKMbQU/1PQPBcqH8XN7PpNYOWHCjoNvNPmOLk8ZMAGlNpGLBXb43vYaEcDVuZ2DXmgcw6GijA==","signatures":[{"sig":"MEUCIFyGY8FwhW7cc7MznYd1R5BMjFAVjNjOcS3b3S93tZBrAiEAwECKIO0FKbjrvoYbcSO1BfIK37NVkShiMJww1TXIwQ8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260311225043.93e2321","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22724297},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"93e2321858fef313c4ef417b0f336af7606bcffe","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260311225043.93e2321_1773269473128_0.2126368351588197","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260311230843.9b77e1e":{"name":"remoteclaw","version":"0.1.0-next.20260311230843.9b77e1e","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260311230843.9b77e1e","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"746c7191ad7778e326b22c7cf26b7d156d46cc03","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260311230843.9b77e1e.tgz","fileCount":2112,"integrity":"sha512-PGi1idVvSEUDdk/gdg6+rwiwNHemI8wTQLn/vXsCVWBzlgoJY1OITD5sku8RaMHN52EDxe1XPkLyNMmJjqbb1Q==","signatures":[{"sig":"MEUCIAnntZBIjC3iN4t5vP0pl8JeJ4HdxfktI4Z28SEbu37bAiEAlekz1oLG76064IEDb2FDqa/D/2eTKYCI/3tPza4SSIk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260311230843.9b77e1e","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22724303},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"9b77e1e3677be4ef4f5093889954809adc91c4a7","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260311230843.9b77e1e_1773270554638_0.5506674004249066","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260311231753.541e3a2":{"name":"remoteclaw","version":"0.1.0-next.20260311231753.541e3a2","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260311231753.541e3a2","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"074f937e67cb9784153e0d50e2add9eb1d7fc8fd","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260311231753.541e3a2.tgz","fileCount":2112,"integrity":"sha512-aYCTbWz0WGwk6h/+4izSisqXV2xl/ufQoTo/S8GGgbbqOOjYKLjbl85dJow1RBDaK4TugZ83Fnxoigcx7u3GsA==","signatures":[{"sig":"MEYCIQC8XcdyuG0/OqvPuBvzExFqYqchMRERw7VkUViHHJGicQIhAN5FRaxwJPUubNrcmM+pVdF5SahwLLR8MmMeHo9DwPQY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260311231753.541e3a2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22724477},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"541e3a29245e7c95ce131378a98a702e4b242501","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260311231753.541e3a2_1773271102389_0.7649282902415533","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260311233508.640d6f4":{"name":"remoteclaw","version":"0.1.0-next.20260311233508.640d6f4","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260311233508.640d6f4","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"69d587a1472443e2340dafff4f5914ac139329de","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260311233508.640d6f4.tgz","fileCount":2113,"integrity":"sha512-uQgTswE2LkSu2B/yHwK9qpYN60zMSVOSRKS1bJ695IbQZ2oFLVnt+TTn4vkhVFBgjfOolfqNgXWA+/DtfNm6KQ==","signatures":[{"sig":"MEYCIQCYMaep6iMm2nFw6YQB0X9TgkB39gGn/OKUE3Z3U1n0hwIhAMO58LEg7J8K4+DNVvNFR7lCZalTZxNqSyoiG3hlWtQn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260311233508.640d6f4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22731813},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"640d6f46b2c75929e6eb5c41248c4566a3d4a3bd","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260311233508.640d6f4_1773272138696_0.5743290879090959","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312000131.4dee9f9":{"name":"remoteclaw","version":"0.1.0-next.20260312000131.4dee9f9","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312000131.4dee9f9","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"7eeda7e22108097c8705029ba91f3ce33ebecebf","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312000131.4dee9f9.tgz","fileCount":2113,"integrity":"sha512-V5szV90X9Qy9X2fI5w1U4lcZAeSSHZnf2VujgtSaW4XOPzB0pPZLdg3UYVuk0UR/tbUrfWCrB6ly74vqauxXlg==","signatures":[{"sig":"MEUCIBykc9BS915usiqcLN50gnafkX1yYrVUMKzdK8RDkraHAiEA5yixxxDX0FANf1zFRm8FfnUOysJCWK3wOZLYOu0YwNc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312000131.4dee9f9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22731179},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"4dee9f939adf37bedb4fd8eaf4d475ab8e524ba8","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312000131.4dee9f9_1773273720583_0.6776068992596773","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312002211.9f89ca9":{"name":"remoteclaw","version":"0.1.0-next.20260312002211.9f89ca9","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312002211.9f89ca9","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"cbf6c54e1bf78ab4263817a198227a9545b8242a","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312002211.9f89ca9.tgz","fileCount":2113,"integrity":"sha512-9neWFZoH+aryxD5VsR9/oWHXE3mCMzvtpOby3dFbAMde7128JfVuN8XbHSoomnyOCTciiGhz7VytCi0fKGfdGQ==","signatures":[{"sig":"MEYCIQDjy84CkXpMubZjd8pBN9cashor5sTN3TLyN5tkR0GPmgIhAPOXoiKnme5nLbjMsrpms24UF6L4zk04cz7b+YQtYL2q","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312002211.9f89ca9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22732120},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"9f89ca9bab21243582330d6282b683e7c7a0c684","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312002211.9f89ca9_1773274960673_0.8173650506121166","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312003122.1984c3a":{"name":"remoteclaw","version":"0.1.0-next.20260312003122.1984c3a","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312003122.1984c3a","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"6e6fbf8bd440495345e049971e1233c87dd92a65","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312003122.1984c3a.tgz","fileCount":2113,"integrity":"sha512-hH+dAO4qgZiYSq04vIZZX5//W5WIuWeBEchFLBGnLzOwoPQKQukqb5MbE116NlZpf4WWSLq0djm2afTDda2i8A==","signatures":[{"sig":"MEUCIF57VjZKc6lRoUWrR9FeuTBxiTeoA2AHAa/1iXG2deMgAiEAqSgHMCxKfQ/GpR5towl5Z0oBOh/isEEa8af+hHxsX8w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312003122.1984c3a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22731758},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"1984c3a2034fed7949a0325b298e288242acd10e","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312003122.1984c3a_1773275515877_0.33395599997488046","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312004107.9663f0f":{"name":"remoteclaw","version":"0.1.0-next.20260312004107.9663f0f","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312004107.9663f0f","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"647fabcf8d3a5c9b3c8d0e21a390e1ee2e6b5ec0","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312004107.9663f0f.tgz","fileCount":2113,"integrity":"sha512-4ti3vQKKVNkiCZQUMFVMsekfryzfqd4UTUut1FHQLQNbzuhZZ6e3mTTO9L2IMkvUaawu1YxH+OhD+zJ/ySdpbw==","signatures":[{"sig":"MEYCIQCXF/ChyMQ5WqMNegPuUTFh9Wep/fcG8C8kz8YfQ5m+hgIhAL29cHkx1gW+934YDKLyn/Jo3+jlOvYx1RwcSw7TmmQr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312004107.9663f0f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22731820},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"9663f0f56e09e6785fb496c32865e519b962bea4","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312004107.9663f0f_1773276095953_0.7318374275350765","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312005045.c80f859":{"name":"remoteclaw","version":"0.1.0-next.20260312005045.c80f859","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312005045.c80f859","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"15e76144275cf17f92b640b841ed5f561a93bf4f","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312005045.c80f859.tgz","fileCount":2113,"integrity":"sha512-qISnqCks+xbgc+dMS/C+9J8mqmYVaRgt3vhDL5bC0DRqMhsoiq29pWkVtwyWwN03XxqxCrrJjTEKVIRezqZS9w==","signatures":[{"sig":"MEUCIDe1b6olAV/o6UAGlbGn+3ZU+ypPq1WrFWkYTpu4QI4cAiEAkkxq6Lc9kPlY0mu1fjxooSAY6QudL4iTQZhaE4SMhEE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312005045.c80f859","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22731874},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"c80f859cb79f7a2c579ec27f40c4c455324c2b8d","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312005045.c80f859_1773276677395_0.5309716335171568","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312010003.ff941d1":{"name":"remoteclaw","version":"0.1.0-next.20260312010003.ff941d1","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312010003.ff941d1","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e0b5754f5dccc88c696b072ce3abdd815342a30b","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312010003.ff941d1.tgz","fileCount":2113,"integrity":"sha512-KZBOC7xMFGr8xXGrYkSFCYG7pkfqDNIgLQP8qCJz59T1gJj+UdsSw7ouloeEkJMXULYqtLyyMqp7InEFx23Ogg==","signatures":[{"sig":"MEYCIQCLCG/CoEUAlB2RbmWfAMcRwOI+2ye2In2AVVAYxIUXEwIhAPPfpsU4VT7Z6H4BnIgHoCz5RsIHqgtwSyu5JVNxApsn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312010003.ff941d1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22733586},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"ff941d10e589ed8eda221ea974dfb68d1e439a0c","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312010003.ff941d1_1773277231897_0.921897121911248","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312011609.4af9674":{"name":"remoteclaw","version":"0.1.0-next.20260312011609.4af9674","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312011609.4af9674","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"7dc6277f337305ccfeffa599e31247076dbf8d41","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312011609.4af9674.tgz","fileCount":2113,"integrity":"sha512-3En4+WqmxvxXTtNm6WdICGc3itCvCp57hjwSQKcL6qr2VeIcvkkbJHxTp5pcxcNeBYwCA2wwXdwDD7YDDmepOg==","signatures":[{"sig":"MEQCIDEEgpBEw5GgHvg8WaVQT24LstHbqAfw/3uMLAoQaxDqAiBiL+SAT0Fj5Q2c73zt+cWKmSgR6ln9FYht8kwfWUKRjg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312011609.4af9674","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22734338},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"4af9674d83b9cee093cd5bbf87da97142738399b","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312011609.4af9674_1773278196828_0.9165013095032966","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312013651.16e1009":{"name":"remoteclaw","version":"0.1.0-next.20260312013651.16e1009","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312013651.16e1009","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"bbe7042c059e7e68e2a5c8da4d7699e9bef88cd3","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312013651.16e1009.tgz","fileCount":2113,"integrity":"sha512-62MXCwSjRsg+MO9ZGVemw8tmzJ2wrKlfDeALuHjdP0FQwGpEcb8X+IlifvjQ+2TIRg5vlptjjo1rXac1aWpNlQ==","signatures":[{"sig":"MEYCIQCROoiiJA2O7QzNcLXS9fFRDRLOAN/NvCw+nfWRPM8KbAIhAN7jqBCOflaJSm0pVpPFOCQZZ3hZwxlL+fFjNWAh4F+X","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312013651.16e1009","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22748034},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"16e1009be23dc1ec19699d2b5657224454ad63c3","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312013651.16e1009_1773279441052_0.9107813637396471","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312014941.f5691c3":{"name":"remoteclaw","version":"0.1.0-next.20260312014941.f5691c3","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312014941.f5691c3","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"5b84fd94b8562974e3c585a72cc0bb3ccb43f4fd","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312014941.f5691c3.tgz","fileCount":2113,"integrity":"sha512-fnjKczAxNb/vxKD9Ks+CudaMfzufOTCjmXzBjXNEk2mc9wZC5Au/mVYnrNzufs1j2rDydPGxwjy4CEHymOrZCA==","signatures":[{"sig":"MEQCIEJccQSJqPTtEE5csQB+/067tK6nIRLh1XkBkeAlqnzCAiBfjeDL4JNT/YznIQsuTqBr3mgQMHuGAteEKksMANR4dw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312014941.f5691c3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22750649},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"f5691c3995026781070f0218d16bb958ab49bfc6","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312014941.f5691c3_1773280211707_0.8059048440195773","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312020223.9d4ce2f":{"name":"remoteclaw","version":"0.1.0-next.20260312020223.9d4ce2f","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312020223.9d4ce2f","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"fb24dea931f8aada8efdffdb2c7d83e5139ef5f3","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312020223.9d4ce2f.tgz","fileCount":2113,"integrity":"sha512-XpMIIBKNgDq2wh5b856Bq8i7+ZweYJ45o22UhmSKA7UiWQple2Q8nMTBaEWgGyfDaATp+RvrgN7DNAlE+UeoJg==","signatures":[{"sig":"MEQCICko3/cRjt2M0LT6btotratplV9vcbR5Qnjk7uPwULgEAiBbfGZYFD8zlyF7Qc9T/D/TvoBlaLsIKJlS2p6AZD3aqg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312020223.9d4ce2f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22752907},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"9d4ce2fc70d4a0e9e1e2a9d0e964c0baad1286f8","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312020223.9d4ce2f_1773280972445_0.4062665336497213","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312022020.7ee47a0":{"name":"remoteclaw","version":"0.1.0-next.20260312022020.7ee47a0","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312022020.7ee47a0","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"7a658dabf6afec952f8a18f4e7495522f6f5f484","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312022020.7ee47a0.tgz","fileCount":2113,"integrity":"sha512-h3XbEsDyo/EBSlwWgU0w8Jib3n2FnZjlFnV4E2e0bxKvor1QR2Q+poFj9pU/ti59mRxZiT9Flzl+Br3OsSigZw==","signatures":[{"sig":"MEUCIHkeO/0mRHUHJVVssALTU86abwBvz5AJ4uKVzxk29+IMAiEAya21OIpGVU2dxwJKo0soZcyv3F9n+aV+K2fsH/AojH4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312022020.7ee47a0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22753723},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"7ee47a0054d1051efbdb361cd6e0d7dc34bbefe2","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312022020.7ee47a0_1773282049635_0.651161332006104","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312023504.53f3a68":{"name":"remoteclaw","version":"0.1.0-next.20260312023504.53f3a68","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312023504.53f3a68","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e1a3e6599213f44295efef5d74cbd1870be3e819","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312023504.53f3a68.tgz","fileCount":2113,"integrity":"sha512-/XLRFx/UJDnJS0CA2mjBggPSjcj4pNaLONYrtn1JXnlUS1JJtlXUdIBgrPkMJ9DQLqiU6rtx2GhUuSSdqM+tuQ==","signatures":[{"sig":"MEUCIFZaNC0SGis2g4A9G/NKuwyTBqvT/OnwZ9I6vM4KtzJvAiEAw92t7akq10QoaecLuixwJqAUbNzrhQpauwWlMUAG7YI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312023504.53f3a68","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22753775},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"53f3a683db7804185673427c5f36e775b8f45b0e","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312023504.53f3a68_1773282931989_0.07620964450470069","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312024413.1cfd6e7":{"name":"remoteclaw","version":"0.1.0-next.20260312024413.1cfd6e7","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312024413.1cfd6e7","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"7f657f063d5c0782dab09c9ba858393e00191f57","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312024413.1cfd6e7.tgz","fileCount":2113,"integrity":"sha512-5LhQBRklXx/UUMcs9P7QYfM+bFAWnHapUMf/MBj1hPutHr/uui444Be9ApRkC+Y2pWJ3Ft8r/39rJ0ZzB6tElw==","signatures":[{"sig":"MEUCIB+d03dO+Z/yD2KDhEy+T/t+qSsgDU1SYgHuyHYtQPcOAiEA3xakQjVE99tBmcWX9vtmDKfCFMHtaMb/WyDQM+QkY2I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312024413.1cfd6e7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22753779},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"1cfd6e73d004cbeed0ec3cc921ff7838cae3678b","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312024413.1cfd6e7_1773283480772_0.3576922607918034","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312025957.f62993b":{"name":"remoteclaw","version":"0.1.0-next.20260312025957.f62993b","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312025957.f62993b","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"75ef370fcc6390446c439fca435687510426eb60","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312025957.f62993b.tgz","fileCount":2113,"integrity":"sha512-nVtVO1ga5EXbOJLjWHez+9a9nYbCIS1fjmq81koa9bI/M6dWowvzleC+p92Cpfp7L7a5hhGI8u2uqQlg+KLWcQ==","signatures":[{"sig":"MEQCIEno08QkHjjbymMnNBTcQUYATWdFruSlXHTs5FgLHMfzAiA5RJl+z6oP+Ywf79TtihULLfSopq6LW9FKbm0OjP57Aw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312025957.f62993b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22761748},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"f62993bec6dea2186994a5fc30b2c539430527e3","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312025957.f62993b_1773284426380_0.6608716897362004","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312030839.be55fb0":{"name":"remoteclaw","version":"0.1.0-next.20260312030839.be55fb0","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312030839.be55fb0","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"c6707ef246d2d60986eeade824fca397069ed7e6","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312030839.be55fb0.tgz","fileCount":2113,"integrity":"sha512-qAnvjxt4T2frkAIQkgSvPDN6YaaPji1g53B5hhWjLr6Xk9kHihpZh89fpaRW661yaRRkFCwkkz2tprHhy18Yug==","signatures":[{"sig":"MEUCIC23huIHMWIoLur9UZYgR3uovIwlhKT0Y2+mxGrKD3jEAiEA6aXv1gLGELzb51XSdZt+vCkulDwdhk8sGNnND83swZ4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312030839.be55fb0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22761502},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"be55fb044ff8c99fd3216202f22f85293e4cac7c","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312030839.be55fb0_1773284949170_0.6852888777299804","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312031852.42f4478":{"name":"remoteclaw","version":"0.1.0-next.20260312031852.42f4478","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312031852.42f4478","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"73b6c4cd63daa06652d6e958c4c38b0a91f49064","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312031852.42f4478.tgz","fileCount":2113,"integrity":"sha512-54fa2+xdd9zPThPuqvAEoMEOGiPl1qCQPU8/4HuKmrVnhEQDnl26FwGZtwzzya+0DBsx4XOmJgHG5jA0AAhEug==","signatures":[{"sig":"MEQCIDyITiAmha4XwyEuzZUu4eBxkVLZMsK0xu7dPJh89yT9AiAfX3G4jT3H38TaSJco2NS52DUiHRntmsZ9vBPiLrzAIw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312031852.42f4478","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22762470},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"42f447848b2d36029810754bd56423fdf5ac5124","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312031852.42f4478_1773285561499_0.32252746955084066","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312033049.0d1d786":{"name":"remoteclaw","version":"0.1.0-next.20260312033049.0d1d786","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312033049.0d1d786","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"3247141330e1b54a453caa9ce090c4b822a8b03b","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312033049.0d1d786.tgz","fileCount":2113,"integrity":"sha512-QHp2DMTxNFtyZxJ5XbPhjKNuN0OwLKNS3bsBl9WMbR1rBSNQpo++CJHD4KM9JSxLMDZCE5faLeSqD1OjQN7ZDw==","signatures":[{"sig":"MEYCIQD0TpbQ/ZB4jRtw6LWz9vfgQJCe8r1HBq+oeXDddQmjKgIhAOzojRNkn1Lik/vs6qt6HaC5l7iYFaInzJb4iY1j37wv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312033049.0d1d786","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22763162},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"0d1d786ae9478f54319692b5e0b27d27ccc75dc2","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312033049.0d1d786_1773286278723_0.6454032402349859","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312034106.e38f285":{"name":"remoteclaw","version":"0.1.0-next.20260312034106.e38f285","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312034106.e38f285","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"89cc94d922c06dff68b317bdb1bbff04954c698f","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312034106.e38f285.tgz","fileCount":2113,"integrity":"sha512-MbUZo9Wj99IpjNkAVxgn+WJ0gRSBx/QJYXCvPUFbO4Lxoc4RjjDtP9SzIBxqZStn7A1ugy6sp4K0seFAVCACTw==","signatures":[{"sig":"MEUCIDzyv42+RdASlkkai2qQE9QhBQLoBS1JpwjqNZv4AamRAiEAjlPq6AK+ybeJjDgQTl7DirMxmFJ/C+w/J6ICy4+pcGw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312034106.e38f285","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22763340},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"e38f285733aee603578c612ff290996a615f8cdc","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312034106.e38f285_1773286895862_0.4214478206311225","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312040703.3e16bb2":{"name":"remoteclaw","version":"0.1.0-next.20260312040703.3e16bb2","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312040703.3e16bb2","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"2fbf9051cd4bfd1953078efa845204b6638a0f0d","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312040703.3e16bb2.tgz","fileCount":2113,"integrity":"sha512-y1F1zFL3ZlrabWayqfM/Q+ft449s9Y+Wl8I3V5o0kyyZlhp9bgt4nbtd9T9YeqYW5u9QpHGlzXTqsAK1ywCMOQ==","signatures":[{"sig":"MEUCIQCOhyOty5n9nqoefPai372n7s0IvWlJN2Y7zDtdZXiIEQIgb2myD7apa8sj3r26Fgs0ar3r/8tmPk+ZGnJYlJQXPdM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312040703.3e16bb2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22773994},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"3e16bb2131bdd5a95233d3e1c07faed3345af56d","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312040703.3e16bb2_1773288452132_0.14516979194923718","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312042216.a5e5be4":{"name":"remoteclaw","version":"0.1.0-next.20260312042216.a5e5be4","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312042216.a5e5be4","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f5e3e231d4d2528ee72eb1579b9e4d065d2563f5","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312042216.a5e5be4.tgz","fileCount":2113,"integrity":"sha512-rRNFFQCYjQdGECbtdFGZ0H+UPsxyta4DIeLPVV2lsMh5q4Exg/7ZmHExcu6pbADoApjtSo6RhH7Dzz8+otKIkw==","signatures":[{"sig":"MEQCIDu2gw3eT6rYJLOaPfodwwPAZS6rzqHu+8loqAmw4PwkAiBE5jM6mnq3O2PsNxs/6bxEU74uGEeq5HZYtN7oRTXheA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312042216.a5e5be4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22774301},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"a5e5be41baacc34c45dfce0c711b447c64afbf96","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312042216.a5e5be4_1773289365491_0.5228198456098105","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312045322.3b87743":{"name":"remoteclaw","version":"0.1.0-next.20260312045322.3b87743","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312045322.3b87743","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"a2b9daa464df80af31f80cb07fd0688ab4b9e007","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312045322.3b87743.tgz","fileCount":2116,"integrity":"sha512-N8kFppxHTQCTXL6v9zGlXCp8bPp7GQcjlcVFK1dI8yHLPKxaZ4cP4Sx0IG+UKpWJ1RXCSdgce/kZn6EMZ+qGAA==","signatures":[{"sig":"MEQCIG9vFU9q5BsksM+fx8g7BY0JfXUxMHovhQSVuhwnoP7aAiAm6g9hy8d0wh/N23UMYz7nousH76fWBY98XfnVnR14mw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312045322.3b87743","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22821857},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"3b87743ece407b69f8e07d0fdd055d2d416e1a84","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312045322.3b87743_1773291231397_0.2567457082668143","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312052306.3df266b":{"name":"remoteclaw","version":"0.1.0-next.20260312052306.3df266b","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312052306.3df266b","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e54f059794e357907af28dc5e94f96bb48bbf16e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312052306.3df266b.tgz","fileCount":2116,"integrity":"sha512-Jw1vkuz0wYMMlwTSmmHMFxkDm5CXyrbY7OjezT6CcTKxvubL46HoTjkGJXMFcE6sznG/1t1FMOmzqjJGqgJ6bA==","signatures":[{"sig":"MEYCIQCijjXd+BnflMYa50tsV1S2Iq7RC3I3vfie7EOz7zH3NQIhAPtdbyNXEZ8jL6i+PhjUbJHcrxFHy6GpjgY082zM/+tc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312052306.3df266b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22850847},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"3df266b1069d8f38c6fda0d005947300c055a696","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312052306.3df266b_1773293016368_0.20036273402254823","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312054540.b8ba84d":{"name":"remoteclaw","version":"0.1.0-next.20260312054540.b8ba84d","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312054540.b8ba84d","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"320136ab7a859ac9d5c70ee459dc566835503dbe","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312054540.b8ba84d.tgz","fileCount":2116,"integrity":"sha512-zS2+Dkfr45M9aXMRYaTfDQcTmWoISO5QtmRbKaPWv7X5WgAaNUh8ablBZbFgMHD1GFrRzlJQqJEGtl94mYMVmg==","signatures":[{"sig":"MEYCIQDcLqjvlTVfAFo5ObTYVlYdnKbhnMFyXVTxULBqdG8lDAIhALBlnKBA8JAM2s9RTPc2+JW1gFAeKeqIvxat5OyhL8VD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312054540.b8ba84d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22851437},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"b8ba84dca9cfd0e437b938a6e6bb8a31cf026e39","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312054540.b8ba84d_1773294368509_0.4744716388921282","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312061442.d69c54b":{"name":"remoteclaw","version":"0.1.0-next.20260312061442.d69c54b","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312061442.d69c54b","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"22f3b0c1810b7918b4b1376ea40aef203d236b25","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312061442.d69c54b.tgz","fileCount":2116,"integrity":"sha512-HgNUuv7sL/u+t4DA6OUbuXNTnFVz99htQ1JnOIF07AVpHp61eoZYgZXXVTieRW/pu2GgxnecPvaZjd5Rl5P3cw==","signatures":[{"sig":"MEUCIQD3c19ho3P/Ij8lzv/ZsKoW/seP9Yd2iR+9ID4dQsdWWgIgOUifVIPNu6JQ/2QvtXr2AltInK1WaTNehk9LtvaZLZ4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312061442.d69c54b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22851433},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"d69c54b86edb028b5a4468857f900d85d88e8466","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312061442.d69c54b_1773296111961_0.7165508536079406","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312065259.ac57686":{"name":"remoteclaw","version":"0.1.0-next.20260312065259.ac57686","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312065259.ac57686","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"c86b1dd669468bd0bde5b222941522fab3d4211b","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312065259.ac57686.tgz","fileCount":2116,"integrity":"sha512-4p2GjOOUX5DgUzAWrxR5kczLkDa4nJqM4B4e9EL6q7ZVu056eOmBpOxjC3OhOYZ3dA2HSPTILeAIl3Yl1eZcxA==","signatures":[{"sig":"MEQCIBREkBfJq+1qqF9gXBKSMUE43+zisGcjR9inH5TZROsbAiA46LThzLf9IodFHdptie0K5VUnAJCE4h8sQYl9A9kktQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312065259.ac57686","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22880931},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"ac576865f8a0a16322b1a7998eff5810213d1a78","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312065259.ac57686_1773298408934_0.48121333653359377","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312074432.6db7649":{"name":"remoteclaw","version":"0.1.0-next.20260312074432.6db7649","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312074432.6db7649","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"47b7afc7539199f3e3fe07d6a775c1eda56e2de1","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312074432.6db7649.tgz","fileCount":2117,"integrity":"sha512-TVJ7XUjc+F3BwQPh9EvdG+MJaOVFQeCce1FK7hmo/eQbOKNifM82S604McV/JYtmsckS0dxVy+Lp/D6o253rNQ==","signatures":[{"sig":"MEUCIDRzlggRDl3D1yBqEmG+dKlRi9zzV69fgWII9t3tmd9xAiEAoRol4ivf5EY4Ox7pxx8zNRxm/WdA0eGmz/iYoe5GBE4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312074432.6db7649","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22888379},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"6db7649fe5e930d1acc66a0e704230e779a02cbe","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312074432.6db7649_1773301501785_0.7528623443980875","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312082426.85d706c":{"name":"remoteclaw","version":"0.1.0-next.20260312082426.85d706c","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312082426.85d706c","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"4d504f88d92c277d55256174351241345c14943c","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312082426.85d706c.tgz","fileCount":2117,"integrity":"sha512-vuCz/glSkiEaJksJOMScSK+zt4bC2AaS8Iqb40Q5d3PfJqbbQaB5Gxk5kLaZYsCo5GlCrEKIQfo6uBOhYPZEig==","signatures":[{"sig":"MEUCIQCRUhEbB4jNbJo6OJYUSM/pfnrOkXhfQpojN2dzuicdpQIgDuxxmrUMSq0gZNHhvCG04lsqnnr42PMMkKRGhesZ1d4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312082426.85d706c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22888025},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"85d706c8236f54b8fdcaf2bd6b2b8b4326ad185a","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312082426.85d706c_1773303899193_0.6562021344408502","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312083347.ea37b82":{"name":"remoteclaw","version":"0.1.0-next.20260312083347.ea37b82","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312083347.ea37b82","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"9a1f49fb3f9e4c65d22e5f6ab6c03b88e6b22646","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312083347.ea37b82.tgz","fileCount":2117,"integrity":"sha512-x5zpnIi5QpzumBO4+rM4mFcSwnM31EM871P3bax62+90V7YuCZX8cO15i8y696mt9KhvkOttZiKIDV3BiCYMDg==","signatures":[{"sig":"MEUCIAPDW80RaCYF3hYf1pUBbrPHmCxVx+usTx3xjAwCp2AgAiEAqXbTOd/yPKgLFov3AofqXAaFZTDuMlRL10tzU2Fs3iA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312083347.ea37b82","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22888021},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"ea37b82d9d730c68c1ad53ddf3bf9ab284c2b246","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312083347.ea37b82_1773304454569_0.5429682648957994","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312084251.460c1dd":{"name":"remoteclaw","version":"0.1.0-next.20260312084251.460c1dd","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312084251.460c1dd","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e0bed4e418ea63f9f7b855730a6bea891db86b43","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312084251.460c1dd.tgz","fileCount":2117,"integrity":"sha512-VuPQQDc/v3iyTzlXwLXRr4rPTCT+xRnPMMwucyDcCknSp+1GR0pxVhBEgPvEaYqwIs+OOwKu9aJhDQz5DLBreQ==","signatures":[{"sig":"MEUCIEw4LHjm7fnnsbsKEst48HkFh6s2Q+/QhStPUbgs0SJqAiEAnta4aLGnat35uJ3TNhdrEg4vkwOqswGL2SORW6odAEM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312084251.460c1dd","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22888025},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"460c1dd9bcc8111b38e48f80ebe43981904a4bfb","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312084251.460c1dd_1773304999897_0.08091451155887652","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312085512.4734d6d":{"name":"remoteclaw","version":"0.1.0-next.20260312085512.4734d6d","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312085512.4734d6d","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"2ed17a6e47d841feeb58f3d2cdc85e281bd682d2","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312085512.4734d6d.tgz","fileCount":2117,"integrity":"sha512-vu9wDe7CfQfVy5rN2NB388p63KxXZoXTrBLSQxbnuUqQSFsozO38jGi6EIfWmsOHPQYW7p9aovjxmqVxKLK20A==","signatures":[{"sig":"MEYCIQCLEzCTzT5Rq5n/a1fut8xpPbpqvIIlL/cZMSb+W+eAwAIhAIL8/ukS+tGZUC0mVwKsLoni63Tioe1thJ6MQyjvEIjt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312085512.4734d6d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22898818},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"4734d6deee145f48d8bbdba9333aecf817a6b33a","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312085512.4734d6d_1773305742020_0.8884663051563477","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312090655.5774f91":{"name":"remoteclaw","version":"0.1.0-next.20260312090655.5774f91","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312090655.5774f91","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"0cc49ae27f5f37de3884079657ddc9b6687379fe","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312090655.5774f91.tgz","fileCount":2121,"integrity":"sha512-92LM4RN60N7A9cYAkdK4lKEAwW/Ue0lbRKWtO7LwvlcfRVYCL2sqIWCkvKAoMi4SK6AOYariQLrEE1q2kByjEA==","signatures":[{"sig":"MEYCIQDNbrLD0uqWWeI8uDBtlp6wClhMbjj8JoRWmqUi/gnDewIhANY1GUfq61ZbzikFOey/YWV12lh6X2YUwELe62y6avgC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312090655.5774f91","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22903135},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"5774f9174c98211257c70df8e15f078ffed7311c","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312090655.5774f91_1773306444217_0.7122947161282187","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312093159.4ac7c26":{"name":"remoteclaw","version":"0.1.0-next.20260312093159.4ac7c26","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312093159.4ac7c26","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"2bd0ea5a3bf7ac385c7a323a5a8f850d1704f0f2","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312093159.4ac7c26.tgz","fileCount":2121,"integrity":"sha512-T88vminHY5zdaZt5ivM/v7BMzEHy05Lkg9n7shzQWDpwYy0dzckpsQO+K7VeVOIT7Q7WPeqOw5+iGRoIuNXpeg==","signatures":[{"sig":"MEYCIQDFoQMfYapOXBFjKhzxDTvAjjLInLXkc13HkApnicLTTQIhAJJGIKIL/6UZLhYZw4MgQ5TmEyWJvhjtcHJbDs0RXwUM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312093159.4ac7c26","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22905826},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"4ac7c266236422b393a139d65d44c79d288c562d","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312093159.4ac7c26_1773307947163_0.33132426848590835","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312094651.109fbe6":{"name":"remoteclaw","version":"0.1.0-next.20260312094651.109fbe6","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312094651.109fbe6","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"c9c0bca85dfe307d62c88801fe191bda865fe05b","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312094651.109fbe6.tgz","fileCount":2121,"integrity":"sha512-Z7jMhd4Jcq3EZ/vZA3KCDMgPo6/F2vmH1SFILzaNICvpflAUwnkl8jyNngvHAyu8SBo6PoFPeG3jFRPL6RhhoQ==","signatures":[{"sig":"MEUCIGQAGMay4CqIPFqRVMh36+d994Kmm+zZ5XVzUkwDUUG5AiEAjjSUz/tVVtDitNAs2hrbxts3IXe7Z6yVvVKCIBcGhQw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312094651.109fbe6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22909736},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"109fbe6bc250555982f9ea0d41dc7d88e63f8467","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312094651.109fbe6_1773308841433_0.6342916398413552","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312095616.49def5d":{"name":"remoteclaw","version":"0.1.0-next.20260312095616.49def5d","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312095616.49def5d","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"4e7078310cf3fda31c861c9f86a9d14ce10dd821","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312095616.49def5d.tgz","fileCount":2121,"integrity":"sha512-uAB1x0drNckHMMMNgQ5FbjlOKw+aGYgHqXX9lAgy34ZOeKZfqSOx13IYMEpIrjdaPqsxErwZdX90nx/+iOPPVQ==","signatures":[{"sig":"MEUCIEEOoGyeFmQYd7rXjRqF0xXLx7HeTe9PHVDR3DDf5UlpAiEA+UQb1aVgyBkTAtyjq/EGyn1WcFK9p4vJ1+OE/Tku5NA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312095616.49def5d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22910622},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"49def5db324d1e58044be93fa963c2f8857f3f57","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312095616.49def5d_1773309406806_0.6010055440203244","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312100839.b69d6d0":{"name":"remoteclaw","version":"0.1.0-next.20260312100839.b69d6d0","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312100839.b69d6d0","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"2e6cc158e77e91e89350d253175446218fc49b5b","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312100839.b69d6d0.tgz","fileCount":2121,"integrity":"sha512-2NcEhDVMOznKpraP+sYadMJ+tvkfnyn+kg/I+IF7Xy7LkcUVIGTN0sgbH1jWz0xRz9+jBNvzDrCXR7gBSNhbSQ==","signatures":[{"sig":"MEYCIQCXXFJHiOo8Hc4almhThfVWKrVpqFideGX77VcqhiyIwAIhANy13096tP8V1LF5/CzmkAUdTzvm1IUL7+v7pOE7IuIY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312100839.b69d6d0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22914216},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"b69d6d09245ef0732dd0a2900599639cba22c949","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312100839.b69d6d0_1773310147960_0.03222026566997305","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312101856.dc882e0":{"name":"remoteclaw","version":"0.1.0-next.20260312101856.dc882e0","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312101856.dc882e0","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"c25149f39fbbb809511efaf233f59bb1067afb1f","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312101856.dc882e0.tgz","fileCount":2121,"integrity":"sha512-1Mg7NLFVZbCdaOvlpyQkH9v+rm8kLsc6v+StXuzyAiqZ8AwuRbcoHqpb+SWuLm/qQIGX8/075om9d8z6ZjrASQ==","signatures":[{"sig":"MEUCIHcXCVXKkf2l9e+xtu7pZRSxN0sF5S0uNspsP56PInfmAiEA70eNSYxOmaMfEiI5xq4mzN2ukCfdJDt/aEUGb9HR4dc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312101856.dc882e0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22914208},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"dc882e0404c328b0aac0748d98f8de8d5e787081","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312101856.dc882e0_1773310766508_0.1517291333536379","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312113817.ffb686a":{"name":"remoteclaw","version":"0.1.0-next.20260312113817.ffb686a","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312113817.ffb686a","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"fa940fa243c404a4e3f834aec8c151a90f8e2b12","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312113817.ffb686a.tgz","fileCount":2121,"integrity":"sha512-CfwW6p9S8/mc0PlHiqjqeea5x4y4sHjzJlptWCdTGgTay1Kygc+FcpdeQZ6xbG8VGPJG4/19TWv5aTBTXiWuZA==","signatures":[{"sig":"MEUCIQDINfMo+Nc9WpSDR7uw3CzBhcUuqgDYSTJZpYAZkqy+OQIgT7Io2B8XXn98BzUEXDpKW0qPYBciJOkdLqcgFlK/iF4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312113817.ffb686a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22923337},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"ffb686a995ba25c3c02381b16177ffe4db23f715","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312113817.ffb686a_1773315526691_0.573302791092934","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312115747.e7d43ba":{"name":"remoteclaw","version":"0.1.0-next.20260312115747.e7d43ba","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312115747.e7d43ba","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"0cdd6114a6a44150a0ed77dce3fc8e86ae67a57e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312115747.e7d43ba.tgz","fileCount":2121,"integrity":"sha512-GJT/HWh5RnIT6DcT5MVqH8iGvqSC6LgryRaB8UJU4cTHZGYthFA3y41OBcaQl5q0sQkxIs1ie7rIQQtcF7oeMQ==","signatures":[{"sig":"MEQCIGgxu2kHUv3rz9GP27h4UjzvMIkbNdk6FNR1ZBTQda1bAiBdfEyq2epLJRXR7y3g08fbi4qiG9LXq7FPLkzXtMoZOg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312115747.e7d43ba","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22923367},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"e7d43badd2c6461c43d1073119d3e8c967b0180d","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312115747.e7d43ba_1773316697713_0.48067833949008265","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312120753.0fe6db8":{"name":"remoteclaw","version":"0.1.0-next.20260312120753.0fe6db8","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312120753.0fe6db8","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d346724c8fbb994a95698e2a135777c45ac75628","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312120753.0fe6db8.tgz","fileCount":2121,"integrity":"sha512-Tb65i+wrZeE8iCriOvqi74Jl94RSwyTd3aHkuCdQFc2ZJQcWuQWHQw3ztUvSUSNbWz51Rz53OyuVEGPedtSiZg==","signatures":[{"sig":"MEUCIQDfRxZ7jbLLIVONRryru+J15A8j7PTJUwQ91FPUDBWxGAIgMDqQ31saQ6FMLYzhygGqxReSP+4kziJTPb4v9m1mz6o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312120753.0fe6db8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22926077},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"0fe6db877f9bf30b23c17a226808fd18cc027d7e","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312120753.0fe6db8_1773317305809_0.1685726353516772","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312121723.6e32473":{"name":"remoteclaw","version":"0.1.0-next.20260312121723.6e32473","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312121723.6e32473","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e7c6a646a9b8cdd4a89602019016ef3513a8266d","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312121723.6e32473.tgz","fileCount":2121,"integrity":"sha512-6dLqtRruqox+7ICzlCI+I8jiTq8R3t3vDtW75Zwz7VbM3womf0NhNlChDnfKbyjXdpEAfjsMrsOFDEmiTXLURQ==","signatures":[{"sig":"MEQCIA01n5N0V/rIhAfXltqe4F1Q4Gq+cnUud6sHYlpqdiKUAiBlFrEKkvMmmLq3uwM8KOdvYwluXVJq5XtstO8kq6yQkA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312121723.6e32473","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22926093},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"6e32473986a271f0a43639b59333a5298c8f8458","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312121723.6e32473_1773317872428_0.894527915220799","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312122640.523d05a":{"name":"remoteclaw","version":"0.1.0-next.20260312122640.523d05a","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312122640.523d05a","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f4e4f6a4a981ac85750b5b5f31bd6de34f312ce8","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312122640.523d05a.tgz","fileCount":2121,"integrity":"sha512-sU+7OEFlquM54j4+9fmuxzw/hm58tZ9lazMW2p2iB8kRKNrVmY26XBvvZWZl2iIpcXTpVcsEBMmYD7CgXZDvAw==","signatures":[{"sig":"MEQCIH/yQ2w0cq0aZmGn44R04fhrtSbyptBtKRB6TwORtzCjAiBbAcF2OoTccW1hnbHD5dShP76vpv8h7u0oqf4rebX70Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312122640.523d05a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22926101},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"523d05a9963503854ce3c0288b51bda979bdfe88","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312122640.523d05a_1773318429152_0.021498366681990122","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312123940.aabcc39":{"name":"remoteclaw","version":"0.1.0-next.20260312123940.aabcc39","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312123940.aabcc39","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"7f673efd7f7727466a222347971203f3d6af045a","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312123940.aabcc39.tgz","fileCount":2121,"integrity":"sha512-iztCT5ZcZWMLisx55kFWTkZnEaAl3OPuVI94yaHMiX0LqiU2i11b7ECXqeisxEN0E+8UeEQ6BhLojoQClJBIlg==","signatures":[{"sig":"MEUCIEgXlAcjGRXGXYyUjjfxFIgdTu1KaLCq3sTTBZfzGvXvAiEAv4eyAxKX/JQGPie/tgkle9hzSf+5Xjtr7IV3FOoHFUI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312123940.aabcc39","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22928577},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"aabcc3973a93e36387737667b280f1dc83d5f7a5","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312123940.aabcc39_1773319209209_0.6458728080289056","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312125553.3b82362":{"name":"remoteclaw","version":"0.1.0-next.20260312125553.3b82362","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312125553.3b82362","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"102854219680c77cb4c2c0076cbb5e318e8551cc","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312125553.3b82362.tgz","fileCount":2121,"integrity":"sha512-p1EyVu5QHCZro4hQKa9zi3BI0/TcZcmJ7ONGxZjKPUBfibvHDhStrZ4F1GUYdthTnFfJP+XbF1Mp+kU6O71hyw==","signatures":[{"sig":"MEQCIDV1aOK9+bVfXE3L6T/Yr9jwrskRZVgY0IIwX4geGevLAiAWZkK17Y68QGGOQ74FjCkpJjJLVu2ixcdT1EQBE6LpJQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312125553.3b82362","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22928255},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"3b8236250406f05ea166f89636ad41368597bfb7","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312125553.3b82362_1773320182753_0.8388934823605991","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312130606.ce84278":{"name":"remoteclaw","version":"0.1.0-next.20260312130606.ce84278","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312130606.ce84278","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"23cd5155853a6a5618b970cd29f7e39143b7ca10","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312130606.ce84278.tgz","fileCount":2121,"integrity":"sha512-z7pfbXDInW7lfBoRtpeNEPPsQ/UjyCoOdWU9SvZULlG5NLFU2u211Hm0/y5cuyRAHgVouuSjch9Ey2Bij//pAw==","signatures":[{"sig":"MEUCIGqlwWMccEIajrB2y8XxSAK96vaR1YGl6X/wIqON3pWAAiEAiEj9HbIIZcpzCz2lVyN9ExM049cHxtHbbEEjL3liYl4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312130606.ce84278","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22928619},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"ce84278638ebf3774b3726a9f9f964a311dc0a0e","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312130606.ce84278_1773320797152_0.8022550285089656","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312131523.7d036c5":{"name":"remoteclaw","version":"0.1.0-next.20260312131523.7d036c5","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312131523.7d036c5","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"3d75667d958fae20e7c424bc50f4445f14b71085","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312131523.7d036c5.tgz","fileCount":2121,"integrity":"sha512-zDStPg/iKmrrVhqlmzdfb+Yz+DGYbX1L1HngqWW9d7Hsi37A6sXr7ZAWjFKLnTiVuo9mquhxlFYiPVNgKqvP/w==","signatures":[{"sig":"MEYCIQC1fadeSRguy8kZ9L/ov1z5esNzeETRp3+1P7PiktowVwIhAPdlksqq+qvWZcS+pIHCgERZA8P+pn6/bTDw2g0r2CNN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312131523.7d036c5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22930638},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"7d036c5e6deedd2b792946e13cccf517a2c3bade","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312131523.7d036c5_1773321352387_0.856861444102643","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312132525.bba1c30":{"name":"remoteclaw","version":"0.1.0-next.20260312132525.bba1c30","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312132525.bba1c30","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"2aba1d5a3eca6934ae2c219d1fa85242e08159c1","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312132525.bba1c30.tgz","fileCount":2121,"integrity":"sha512-l9pqvVhRK3VAyrK5GXGaf7qvUuMIBYuaFYedpyv9I2ch/nKqYz14LW18p1qnSk2GxdIEfXOUdD3b72TCQ6CKtw==","signatures":[{"sig":"MEYCIQC0a7rWTct2ikrflaJIJ5penHFwDV/9HcXBSvv/dp+sLwIhAKaTl3oDRx/kKQ39KE1N5p9KHIj0LkqbKQ4i8WVu+3Wr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312132525.bba1c30","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22932250},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"bba1c30e2d3972d8e02940c89dc956e8e2c3a050","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312132525.bba1c30_1773321954816_0.8693928724868818","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312133459.0fd0125":{"name":"remoteclaw","version":"0.1.0-next.20260312133459.0fd0125","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312133459.0fd0125","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"b2e456bb5c20e4823bc862bfc1553fe4301d2733","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312133459.0fd0125.tgz","fileCount":2121,"integrity":"sha512-/1NxpvCn9Z9g3tY6q29Ruj/Qxv46pOcmamR3salLEzfyWI4DQpTIHnSYh1fnMyTg22ChQpeW/YCbDZwKyHNDVg==","signatures":[{"sig":"MEUCIQDGvqjOISJ/quyYOkJJ9pRrOv0R1FwJ8nS5hEc0POL/4wIgEpukuActUqJgKQ674qjtoh/AJRyOBR7i0xOCpLduJr4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312133459.0fd0125","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22932780},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"0fd0125dfd1f00527ac28f2eb8c228f3cb143f5d","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312133459.0fd0125_1773322529382_0.9070034822608304","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312134622.396bc11":{"name":"remoteclaw","version":"0.1.0-next.20260312134622.396bc11","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312134622.396bc11","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"cb3a94cf525a24f5c6682f9cfa76969e47fbec19","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312134622.396bc11.tgz","fileCount":2121,"integrity":"sha512-MAtrd6hXl8dL4IBqDm/NZeD2sqeRgPwA8HuEfqh65LX7+VT60QCsqJpMVAT+MdWv+71QeIhNmVCCxi8n7jDLPg==","signatures":[{"sig":"MEUCIQDkoLWJz4a5OpEWI7Zfky7Mggm0XNjk113z3VdGqv51GgIgU/As6F97TIzy1tyYXDzdi4Yiuk6agAdOCxcMe3+yLTQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312134622.396bc11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22935375},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"396bc1138664dbeba1319fc1e4bdd83a992ddc63","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312134622.396bc11_1773323211156_0.0069256932981491826","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312135532.1bb9b63":{"name":"remoteclaw","version":"0.1.0-next.20260312135532.1bb9b63","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312135532.1bb9b63","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"520ddcd8656426ef10c22f9b81746c6f61714c3b","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312135532.1bb9b63.tgz","fileCount":2121,"integrity":"sha512-o3XeCDEhzDa71WsJnjXjXUNq/Yko66JIbubj87j20a41KHv2rK5ei7blQYPNMBz8hcf9ZhF/qHsFe+avIJ9FxA==","signatures":[{"sig":"MEQCIDMDnZQTIAVPz367VFo+9uUsiEDA6DnyKEt9cTIOaCffAiB1K+TXhtF99gFQ/DjNxFvbMI/jBEB0/hD71xIOYO/RYA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312135532.1bb9b63","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22940032},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"1bb9b63e6a614aa5bcc28dd852d6351d7de6d4a7","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312135532.1bb9b63_1773323762664_0.11248273440970036","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312140454.b1093f0":{"name":"remoteclaw","version":"0.1.0-next.20260312140454.b1093f0","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312140454.b1093f0","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"12ce7e1c304726e38bb5b1b6513c7c71e97f813f","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312140454.b1093f0.tgz","fileCount":2121,"integrity":"sha512-qkm+xljwd2iSz39fxOiHzJ6jAU3OjwYKphX5r5lkvGND3JuhukqmIZVdBhPilzDCGPOmJj5ryNCZrGCGq4mmiQ==","signatures":[{"sig":"MEUCIQDLpJSSLALTNaiL8+UybG4dI6e02pM0qvOqZAWGmb6m/gIgLMTz3oK8reYlkLVB2ZeH6WNBQw10gBXQJ1kcBVnyYr8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312140454.b1093f0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22939956},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"b1093f0378538ecd488fd7add1febbb92a2fbd39","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312140454.b1093f0_1773324322916_0.6888834698835633","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312141410.79a7ea5":{"name":"remoteclaw","version":"0.1.0-next.20260312141410.79a7ea5","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312141410.79a7ea5","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"ddf5a32c9122ae86c25ab38ba10c0a0861ff61c8","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312141410.79a7ea5.tgz","fileCount":2121,"integrity":"sha512-7TkTxh3ZUkqxDCqtWZ/AgpfR2RpQehBvAN6al1+0VzsYc1KGbPdKlVxNr+KZR5j/9W1lQVhPVLceFKoSc68LFg==","signatures":[{"sig":"MEYCIQC1SSgIRwzQXH7v/syHKtfCKQXW4Foag4G8MKdegxEsUAIhAL3hEfepRuJq3aHxb9seEw5Z/aAMR2x6h4WCTKc2kLM5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312141410.79a7ea5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22940272},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"79a7ea5a08170298acad5782604579a99d7bfb09","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312141410.79a7ea5_1773324878500_0.7478071703354714","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312142816.8c76468":{"name":"remoteclaw","version":"0.1.0-next.20260312142816.8c76468","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312142816.8c76468","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d072c10ca8373f46c7678541ce190ee63ddb9fe2","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312142816.8c76468.tgz","fileCount":2121,"integrity":"sha512-U+yTjgTl9gbm1NjJcXSLJDRg5gK6hk6zuSuRxxNUAtXfVbcBv84gnng/t/g88ec339zLrAYmYPIAeR+v+EM4gg==","signatures":[{"sig":"MEUCIC46YULsZtgUjcr/M2AA4gLllC7eKbfHgFHwrGReyzuaAiEAhr8qBy4TbHfhnDMvrmvpB+VCtX0Gaj7orZQDsNWePpI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312142816.8c76468","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22940290},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"8c76468c59b878237a82af6b704fd80abbcfaf13","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312142816.8c76468_1773325726029_0.7040824177167699","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312144036.15d54a0":{"name":"remoteclaw","version":"0.1.0-next.20260312144036.15d54a0","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312144036.15d54a0","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"5e814d9c3d0cfe1c9b435c0392e506f835d54603","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312144036.15d54a0.tgz","fileCount":2121,"integrity":"sha512-3m6L4ZCU52kOX1AWSIHAjS2K9awvDOtSGkYgHKmz9BMpSBh6uuQwQSdH/jiOJbdRVCEw0HP0wvk81ZClJdayMA==","signatures":[{"sig":"MEUCICkuPolTpPOa5zJtNrUc4Y/1+c+wtHL88pWJPgerbk47AiEAx7GGgyUx/8tO/rnn8ZeO2Fe8PrJ4fjeLfFIRZDYcv9A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312144036.15d54a0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22941286},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"15d54a0b74c189f21ca9e53c8f323e8cdfe2384f","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312144036.15d54a0_1773326464995_0.3602923906646067","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312144956.7f8d239":{"name":"remoteclaw","version":"0.1.0-next.20260312144956.7f8d239","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312144956.7f8d239","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"622317f1180d67c3b577b9c43c42d0e6fe09b06a","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312144956.7f8d239.tgz","fileCount":2121,"integrity":"sha512-Yv9ZrdGnI/PkMP9/Wkyx03GDXlLvvDhwiOv4I5HGyYzZt3/PptEvZwwkJW1KuihCOvpErHyCx5HUOW2JJgR3vw==","signatures":[{"sig":"MEYCIQD+4qoWajk5crbGGiwiBGAWjYpFdFWr1sIXi5SwvzRjEgIhAIB0ErydmDQxnkeHsgrqU3+zSClP4PE/H/awEVjsTFGP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312144956.7f8d239","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22942670},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"7f8d239b7a603721a60aa334b07d4844fa8de3c9","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312144956.7f8d239_1773327028202_0.9083374541045828","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312145916.cc0730d":{"name":"remoteclaw","version":"0.1.0-next.20260312145916.cc0730d","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312145916.cc0730d","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"a2ea9cc3168b25a09529033b01c2a90219e4be45","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312145916.cc0730d.tgz","fileCount":2121,"integrity":"sha512-z8HmKOlsHTLsBhU8SU9IwlTqngRbmSfFF9d4tocZjIZOO25Ssu67ka530QRWwej5Cm6E6vb+fMeRukH99WgX3g==","signatures":[{"sig":"MEQCIBYsef1JqMa/2Zq1WMq6fDcyAaCwXHHgRB1IO94xWCFuAiB8MKf8FpKU1kuRLKVyjlBzpzR0zz5CT7pAotLxtFb4+Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312145916.cc0730d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22942450},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"cc0730d6ce2582a4ada45ff7d23b8672e04aec1e","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312145916.cc0730d_1773327582802_0.6792755702478595","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312151344.2141da6":{"name":"remoteclaw","version":"0.1.0-next.20260312151344.2141da6","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312151344.2141da6","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d4d7d765e5a5fce228a442549b3c908882d5c8b5","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312151344.2141da6.tgz","fileCount":2121,"integrity":"sha512-QX67MH1BG3FskHFj419o2QZFI3uNMcoEAzGZxF/inIyt2GI8qJwJHkAeRqm3BfOLmRyyws9WwAjUZu9z+UKstA==","signatures":[{"sig":"MEUCICMM3XJWcKLpc7wuZkhZmwqZMSbwfLboEFAh/uX9ABnvAiEAnw+P9lmwa4YocMnHGoG9/B3EzuMY502OM+HfDIvQ1Pg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312151344.2141da6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22942796},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"2141da621aba58c93d301334c308676da67dd2f6","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312151344.2141da6_1773328453776_0.10543187175762458","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312154233.13e0d09":{"name":"remoteclaw","version":"0.1.0-next.20260312154233.13e0d09","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312154233.13e0d09","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"8e1100fe29ed7e6b818902dec7fbd1693999e405","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312154233.13e0d09.tgz","fileCount":2122,"integrity":"sha512-HBvhEOK1tMZWx/9wDwajlHS/8ApROrj+Pk1vCCpiBh1iOA3+I3VhQR62uJo/rOr8e3Iil0c2nEZJ5nFW4lvWaw==","signatures":[{"sig":"MEQCIFwfWBjXw6HnZ0JJ0NoH+ZRSZrnTRaqOLmUNjVMRvkrFAiA0QA98OWl8cwNaj2EjIJ3jB/JU6XXZ3rizZbAus9iL/Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312154233.13e0d09","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22955702},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"13e0d09b236f554b6d10d3ce06600cd4e799b520","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312154233.13e0d09_1773330183744_0.045966655829084546","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312155909.bb0c084":{"name":"remoteclaw","version":"0.1.0-next.20260312155909.bb0c084","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312155909.bb0c084","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"70d08b6da0bf691b952a4196c9370e23fc0a50b4","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312155909.bb0c084.tgz","fileCount":2122,"integrity":"sha512-MMVmSep/HGwKOh+quitctYu7HEd37+SsjoLvgQylZ3bWgDhbIuQjt9ycEssg4vv5ueuyvcgv0FRyhL3N5W0wJQ==","signatures":[{"sig":"MEUCIDn6lTMl3V/AnQTI0fp7a1aPUYCaC0L1bpmPNXWVuFPOAiEAh3MYremdGGisH2ZwcCK+IZCtcUqugiYxYW82p8yzIWU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312155909.bb0c084","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22960456},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"bb0c084d1a4f7d3b4cc75664ecf43da0149e5833","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312155909.bb0c084_1773331178422_0.1458970905241772","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312162806.974ee00":{"name":"remoteclaw","version":"0.1.0-next.20260312162806.974ee00","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312162806.974ee00","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"72d41d7a8dcd07a53fbce34068bf364228fc8a9a","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312162806.974ee00.tgz","fileCount":2122,"integrity":"sha512-jLz9n1D5QZn4KOS+nHWJfD+1JjW7FZdJy+tQwEwgg2VGbepY7ptPkrSoFjawJG/9UhyHEvIUpPR2J3/3/GPoXA==","signatures":[{"sig":"MEYCIQCClALMNjfVlRcSy85ijxKT7TzxzPr+9B+Q79+BltGXIAIhAK2RuY3rcJ70db8KX14WC0yMB4BZzZf7wGBpw1WXeuMd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312162806.974ee00","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22960452},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"974ee0076189eb27e160783b10975a9c9ca85e6d","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312162806.974ee00_1773332915823_0.2774024474917336","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312163734.dbddd4a":{"name":"remoteclaw","version":"0.1.0-next.20260312163734.dbddd4a","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312163734.dbddd4a","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"ed3535e8cfa56131f134bf941d3c7381a9887482","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312163734.dbddd4a.tgz","fileCount":2122,"integrity":"sha512-xSTvmIU54cJwTK5C2TRh0/AwNDZBoqeH9Kxnv2OkUG9jyBiSxRhIlycN8XstNAmJ+LQY4/c33lYQ707MfyjywA==","signatures":[{"sig":"MEYCIQDD1spZC0AbCvh/L4fWsx+rwdAxlUOFrnMuEqrGo7TJxQIhAMtb9w2Q1m8Z7v4Whwovp/vi33mSw0Wb+JHZzgEONKPM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312163734.dbddd4a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22960456},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"dbddd4a52a2689b4f529fcedb221b04de5fb5538","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312163734.dbddd4a_1773333483936_0.8961113353814774","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312164955.1a136a1":{"name":"remoteclaw","version":"0.1.0-next.20260312164955.1a136a1","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312164955.1a136a1","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"48df3c20c756ecd04173640b7c4cdd28007a25d5","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312164955.1a136a1.tgz","fileCount":2122,"integrity":"sha512-EAEmBSPlBdn26XXOvGiCaQdnYccGCstGxSkDUGWWROwrMVTJ78HkBILP8D7a23w7PSSOmoZYY6Wb8oDCveqkuA==","signatures":[{"sig":"MEUCICGVo0FWt8P95qn7n5MHOg5h0v0affZXweJjiWT4g5zlAiEAtqn/vhnlckVSDWQCzCumh4p+Zk0erEgGvRGzcaaTs7s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312164955.1a136a1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22960810},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"1a136a1410a6fe4c6a949d2ad8f5bb8860c7f427","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312164955.1a136a1_1773334227700_0.2819692255566544","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312173939.8794703":{"name":"remoteclaw","version":"0.1.0-next.20260312173939.8794703","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312173939.8794703","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"52f50f251d9cc482e19913899ebf61878a957230","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312173939.8794703.tgz","fileCount":2122,"integrity":"sha512-0yXSsY2HNduGjAn/7ZZIhPIHQF5TGtm5SZCy6h7H4xhQ32K1WaFJ3ybB61VCVEHD18Eo2vWoI2noeC2hcL2j7g==","signatures":[{"sig":"MEYCIQDdULUVpBwStrwiodTB8g0VT124/vxheOjiTRdc4pQpxwIhAPFVpHpO6h08slMQlmTI9YIKyLKX6pvupKHcoAyYE+Pq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312173939.8794703","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22961840},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"87947035958ae44587673d29be6af77b980ffc6d","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:auth:no-pairing-store-group","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","lint:auth:no-pairing-store-group":"node scripts/check-no-pairing-store-group-auth.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312173939.8794703_1773337208387_0.43543495175879454","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312175201.ff851f5":{"name":"remoteclaw","version":"0.1.0-next.20260312175201.ff851f5","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312175201.ff851f5","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"0aa969408cb6ef76960131569dd98704067fd1dc","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312175201.ff851f5.tgz","fileCount":2122,"integrity":"sha512-jixnJI+bXHaSJHaTOlyLpHGNM/IojNkuEoJ3Z3cL8IA10YN2A1kVx8Rf+bNMk3KfL6HOpYRDquWXi+ya2y13gA==","signatures":[{"sig":"MEYCIQDEiTrA5UMXgblElzERPrXEGsqVR1aRSFBAsVbGM/71sgIhAPl8wa2t7CxZn5Hwobps3ePI/6WYBDPvDumD5NN5OvtT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312175201.ff851f5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22972109},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"ff851f5d94300c9d57caa252eac114d00cff4537","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:auth:no-pairing-store-group","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","lint:auth:no-pairing-store-group":"node scripts/check-no-pairing-store-group-auth.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312175201.ff851f5_1773337951034_0.6566830707219236","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312181832.ae80d1d":{"name":"remoteclaw","version":"0.1.0-next.20260312181832.ae80d1d","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312181832.ae80d1d","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"ae7bb20e292f38c3f98f318dde333baabb2b6c47","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312181832.ae80d1d.tgz","fileCount":2124,"integrity":"sha512-cxzegCw5MeovbAG5Yr4vz+J0YEJpOWKiem8GqsQH1M1HSzaeAPN410RkaypFH9byXCFjxLg/Ju61UsRQqIkD/A==","signatures":[{"sig":"MEQCIGo2/thylEbMzcKn270rXeNCUvEJl3mC2CGXgE0XAj4pAiANZ19iOqDF0g5IO0A/7nY4lLHyAJxLAPrNg+iOL3tJkQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312181832.ae80d1d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22981471},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"ae80d1dba163fc85bf621084045eddb3ca78d06a","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:auth:no-pairing-store-group","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","lint:auth:no-pairing-store-group":"node scripts/check-no-pairing-store-group-auth.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312181832.ae80d1d_1773339541573_0.29010709329067086","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312183115.5878262":{"name":"remoteclaw","version":"0.1.0-next.20260312183115.5878262","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312183115.5878262","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"a18ce53e4471394e087598fd976a0572d3606210","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312183115.5878262.tgz","fileCount":2124,"integrity":"sha512-IcNA+GdyZvG8JZ+oLtTag/FmqPvk99CFVuPeRPR5JN1r3fFUq2N67VMZ0KgqGTLrzJT85IA5JgAOzbtlbiqyPA==","signatures":[{"sig":"MEYCIQD6RZj5RU6uMW/romwH3d3JFgbZvKoLHXFaGjX+5etzxAIhAIb7bahbyuW8EXBgsjiw7K6lsE155G07rwpX5MKJiwEm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312183115.5878262","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22981330},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"58782622e503e50c08f1cfb291d7dd29e4239d1a","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:auth:no-pairing-store-group","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","lint:auth:no-pairing-store-group":"node scripts/check-no-pairing-store-group-auth.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312183115.5878262_1773340305009_0.3724385681824365","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312184340.76c6794":{"name":"remoteclaw","version":"0.1.0-next.20260312184340.76c6794","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312184340.76c6794","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d9a9c784bb41f12eca6f82a7313fbfb199f67b92","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312184340.76c6794.tgz","fileCount":2124,"integrity":"sha512-+34sijR4YONW91T1Ea3hn1r5GEb+I3DgrzgrF69W3Hrd4usMK23nkv7hoWpFJfZ47Ly8rWfPQvK9xjtu4/tMZg==","signatures":[{"sig":"MEQCIHrfRvGrGrDtNb3UpneZGubz9e/NB7R8GyOdteZAyG5xAiA3b/3VdlYjNBzrdViVUnB+URw9QVy3jNrcmnQpFY+sgg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312184340.76c6794","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22980832},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"76c67943690394c9c4037452cd07accafa23c840","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:auth:no-pairing-store-group","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","lint:auth:no-pairing-store-group":"node scripts/check-no-pairing-store-group-auth.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312184340.76c6794_1773341050608_0.20057596473218808","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312190848.2b8b1f2":{"name":"remoteclaw","version":"0.1.0-next.20260312190848.2b8b1f2","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312190848.2b8b1f2","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"3dd431ac496578ea3370d292af849acaea28e51e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312190848.2b8b1f2.tgz","fileCount":2124,"integrity":"sha512-t/eRNnPOI5HirX28DXULDqUHeRRoDCRfgvuQm/+tUUajeSmAMlO+H3+OeKDMU5oFn8NpuB2nSCUbbeqEcuoFqQ==","signatures":[{"sig":"MEUCICPdOlRrJnXwQqhG3CmqXBoGe93woHQccy76oU4uMp8dAiEA2Zr1etmfXPRht8u+BfTWdtIwffWutF7ikMdbxxtAgnw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312190848.2b8b1f2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22981328},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"2b8b1f2f79965b51ffd1e8c9cc267b81aa54303c","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:auth:no-pairing-store-group","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","lint:auth:no-pairing-store-group":"node scripts/check-no-pairing-store-group-auth.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312190848.2b8b1f2_1773342557406_0.4615681394832545","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312192013.f853d7f":{"name":"remoteclaw","version":"0.1.0-next.20260312192013.f853d7f","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312192013.f853d7f","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"3f99783261f27c2e0401e58692c66ec31257b09e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312192013.f853d7f.tgz","fileCount":2124,"integrity":"sha512-1/+3yUAzXr+kw4d5FKCMI6lckZoh4KcI2e+ac6WCAomVCeOfVTdkBxixDmClSVVWt01MyIUkIK9ermGBHA6MbA==","signatures":[{"sig":"MEYCIQDesaxV8TQsHngn6VopcUDqgZNyeJaoJBTkP1ryX/uV3gIhAIUss8srSlXD42jBdkiOp3SUd+JIagLaucry6zuv1Ys1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312192013.f853d7f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22980970},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"f853d7f08bbffb42aa38bd5010d52cb73f84f007","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:auth:no-pairing-store-group","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","lint:auth:no-pairing-store-group":"node scripts/check-no-pairing-store-group-auth.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312192013.f853d7f_1773343242718_0.9556057196846086","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312192908.e9ab2f3":{"name":"remoteclaw","version":"0.1.0-next.20260312192908.e9ab2f3","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312192908.e9ab2f3","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e0b6bd23946c9bc5c8c3c0d55fcf8cbc66a00e8e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312192908.e9ab2f3.tgz","fileCount":2124,"integrity":"sha512-ZdYVG3+P/o9pXEOu5og7NUcF3NdGjzC5BmyrHh0QgMbV1k7sUMNSqsF60cncdbMMjB3vjuW+mnZt4ktRmiJyMQ==","signatures":[{"sig":"MEQCIHLRABRtY8RbRdsZCrhYhMnDKScPXyPitnp7w61IMIh0AiBom5JCAXIEZjQaa7SawYnluxGjrSSfcbic5sxcynF+ag==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312192908.e9ab2f3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22980970},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"e9ab2f3618a9c1b0d0a0a649c71bb33c6dd973d9","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:auth:no-pairing-store-group","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","lint:auth:no-pairing-store-group":"node scripts/check-no-pairing-store-group-auth.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312192908.e9ab2f3_1773343777262_0.6219555854585321","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312194251.3513791":{"name":"remoteclaw","version":"0.1.0-next.20260312194251.3513791","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312194251.3513791","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"50ca874236c6cf39a07a2744a9f192ae4398355a","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312194251.3513791.tgz","fileCount":2124,"integrity":"sha512-YBuba8tWaKTPZLOdQiSFk4NiV8kBBTGzkk6sF3nVXDiwagJNOA6FdhgkTkpXYZccr0MVceOxIOhaSv7bRmg90w==","signatures":[{"sig":"MEUCIQCqDac2fDu0L2hLRLzkvO8LHtThkP11n4fG1VI8xlM2AgIgLSqa+5gKQkslCPzHC0wEWxkCsYSz2vfs7DDMoRHZ9Vg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312194251.3513791","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22981468},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"35137915b5b63c70920b1478a36534fcbdba5803","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:auth:no-pairing-store-group && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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:auth:no-pairing-store-group":"node scripts/check-no-pairing-store-group-auth.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312194251.3513791_1773344601024_0.6506818579126907","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312201710.ac575d7":{"name":"remoteclaw","version":"0.1.0-next.20260312201710.ac575d7","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312201710.ac575d7","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"57e0b0b9a02d6220d6a2c27ae294c5266e4a6e7b","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312201710.ac575d7.tgz","fileCount":2124,"integrity":"sha512-q6ngG85te+br6G1DPpETtvW1nrWJLxNzfeBSiB8YINFNgEugNH5YPUjbONVJSrrwW3YpCbKJOItIVlkEYU2LlA==","signatures":[{"sig":"MEUCIEGfaKGy8KHGus8wdYtXt15geDmZe4V+3rH7eX8BPfn8AiEApzxQiWdLAaLs7YWXSwF6b0cMUrClorVpZATpX0WL/Rs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312201710.ac575d7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22995240},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"ac575d7a9ea0635061b4670bba2e8add7c7407d5","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:auth:no-pairing-store-group && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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:auth:no-pairing-store-group":"node scripts/check-no-pairing-store-group-auth.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312201710.ac575d7_1773346658781_0.9522822550730907","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312204927.bdffd2f":{"name":"remoteclaw","version":"0.1.0-next.20260312204927.bdffd2f","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312204927.bdffd2f","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"be25d7336845c18cf1e9c4e6b74eece7b3f8c30b","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312204927.bdffd2f.tgz","fileCount":2124,"integrity":"sha512-vDpIBXU5AyhdVPErTmgKyT27/bl8aoiLLpeF159UbBUGlG/jyMitWNkLjVC7RcskOs70Sc69VqKV2qzQ7mLLAw==","signatures":[{"sig":"MEQCIHDCkJbFW8gN03i9tjggNtkZOgrBgsMQvGS3u8rsgHAUAiARvoyf9MGZeKybzPBgcdWh6zU80WwGpve5QPcLzisZdQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312204927.bdffd2f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23000366},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"bdffd2f9a77f3117bde41512e37515d8efaaa985","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:auth:no-pairing-store-group && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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:auth:no-pairing-store-group":"node scripts/check-no-pairing-store-group-auth.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312204927.bdffd2f_1773348597130_0.101157720626176","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312205836.3f00139":{"name":"remoteclaw","version":"0.1.0-next.20260312205836.3f00139","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312205836.3f00139","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e9405f11b66a016480317d97fe10a8d88a5986c7","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312205836.3f00139.tgz","fileCount":2124,"integrity":"sha512-pVp+gRfwj0/e6OrmTeTZV0LJbTydM333YjCiYYml/pX7wsxFXU7F8iUTixykxBtG4aQ/tmBgwcCDyIhRBuQlVQ==","signatures":[{"sig":"MEQCIFLN75sjDoBsNp9KG7RoY4Dm2GH5tPp2fbr8E+KAIy9sAiAPlAqPmrJeYhwP4dyo19mPQznaJ/DN1am+O/aO7vu+Yg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312205836.3f00139","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23001604},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"3f00139dc8d44a5f6a94d1a68dccf91f063d9987","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:auth:no-pairing-store-group && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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:auth:no-pairing-store-group":"node scripts/check-no-pairing-store-group-auth.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312205836.3f00139_1773349144386_0.5770938596102726","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312213255.087c2da":{"name":"remoteclaw","version":"0.1.0-next.20260312213255.087c2da","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312213255.087c2da","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"4fe44090c25eefd7dc8fc305e524b8835142cfdc","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312213255.087c2da.tgz","fileCount":2125,"integrity":"sha512-AtgF5KJL0RzmUos6fJce2vXd7FP88mu20b/UUYJcyAPM3vAJDjNIrc3EGhJIpJbZ0oRfgBEQ+2on5qo55BUhMA==","signatures":[{"sig":"MEYCIQDXAZ3kJMEMpIE5UNgzHFwoVJs2gAwYoy06v+2JSZ+OxgIhAKZWuetuPoIywLE8sWd3Ape5HIImpaBcUFSpIGFCanHp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312213255.087c2da","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23006736},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"087c2dab75da79af22e1f2b252f21d97d75fda26","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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: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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312213255.087c2da_1773351204995_0.5074281502642528","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312214548.04b47c5":{"name":"remoteclaw","version":"0.1.0-next.20260312214548.04b47c5","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312214548.04b47c5","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"820aba92d591bbfebeae532867318a175fbb3202","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312214548.04b47c5.tgz","fileCount":2125,"integrity":"sha512-KeDmiGNldjHMNoe9dVJsWDgyBzmvirdniLs0xZKXkLKM2bsZJzpqDJhG7uq2H2BiocWbQzR2tM5eCoAFBB/lOg==","signatures":[{"sig":"MEQCIAw0Yfd6WZJo0rxnOP38xpibp5H9QXNM6ttqwN9YYjuMAiAC203GdPGlr7nIqTaJR12WPzrBlzI/OtD4rGC8Cw/xnA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312214548.04b47c5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23011238},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"04b47c5054eb76e10a3405dcfd90613f6033f734","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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: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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312214548.04b47c5_1773351977998_0.43332672816524265","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312221445.cf276c0":{"name":"remoteclaw","version":"0.1.0-next.20260312221445.cf276c0","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312221445.cf276c0","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"6022ee9ea816c69da42ad8b124f37bb122566aca","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312221445.cf276c0.tgz","fileCount":2127,"integrity":"sha512-U5UMr4+2G7/2IEDrwzuieqAZBxgv3zMBRUg1V0bbAwIgKvxEABIdWrK1nFtFiBFViq+QmnayECqbKflMCviLXA==","signatures":[{"sig":"MEUCIQDtUffsKuTywHA29qs/vAUu9vuGijzU46RbE8XYN6YKHwIgCvMI7fJcIYk/DOKz50umiK9BcVk8kfSkDC/bTt6/bwU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312221445.cf276c0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23016602},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"cf276c07ec1174baae2a7fe1f9fdfda6013036ec","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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: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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312221445.cf276c0_1773353713429_0.43101703199419195","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312222503.67f1818":{"name":"remoteclaw","version":"0.1.0-next.20260312222503.67f1818","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312222503.67f1818","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"527c8d3915c7b6decbdabeb2d1f21ecc955abc04","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312222503.67f1818.tgz","fileCount":2127,"integrity":"sha512-aiHqUPNirJiOALuLv/qFjgkaxaPTrted2p59o2uhSnL9ZGfH7SUOuqcUtUGJ5doBGvLkAjht060V8TcH8fvKcA==","signatures":[{"sig":"MEQCIAUZi6Ky6DsZHIwnozd0PfmMkUUqioL8COVfwzTd+/PoAiA4vMkz5oWrW8Irb3o4KyEsjQWR2FdFJqCaZw/ZQJ3Oqw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312222503.67f1818","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23019084},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"67f1818285d977981870c366ba65793b8348b7ab","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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: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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312222503.67f1818_1773354331749_0.9857466786459312","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312223432.dbee1c6":{"name":"remoteclaw","version":"0.1.0-next.20260312223432.dbee1c6","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312223432.dbee1c6","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"edc66ccc48df0007d674203b4b9a430e117ad284","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312223432.dbee1c6.tgz","fileCount":2127,"integrity":"sha512-bRJxBPkA257Fd2/dJxWewQcXkrvAjNrx5w7At5bKiPo9YrQY9gZC7iyjK1NfWnF8+J0unxLbos9nFQVw1d9pGg==","signatures":[{"sig":"MEYCIQCevTbES6IeMDLLiKN+z7RPbhtV+AjvzSkOT7IJAYkX2QIhAMPphG8LyhfBFk7V/CdwufAKaSPSEd9rZudtm2MhPUgy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312223432.dbee1c6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23017678},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"dbee1c62b2a2a994c7f8bccd9cd2e71dac620d95","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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: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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312223432.dbee1c6_1773354900821_0.45185782327310986","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312224358.98c7438":{"name":"remoteclaw","version":"0.1.0-next.20260312224358.98c7438","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312224358.98c7438","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"8f13c324ac9bd049e257d846514ed3cd5313256f","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312224358.98c7438.tgz","fileCount":2127,"integrity":"sha512-nBxmX8XmbAgU2bBUG0MLSUOUS72Cuqcc71L0ZT2d06duWJFnv+ySRIHY1komqgP+OD28Tr4XxSoCEVRNN9kojA==","signatures":[{"sig":"MEQCIDyMerTEDI9WsjIxPX3wJgdqAnViaz4lrTOMU7WgASWBAiA0pD4oE6ObAc/4mNQGbuDNxZcoEYOSCZljMCKNmuH3Sg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312224358.98c7438","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23017678},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"98c74380dbf501bc201d4e8342591324857bc136","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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: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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312224358.98c7438_1773355467885_0.7189428106256017","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312230626.2080be3":{"name":"remoteclaw","version":"0.1.0-next.20260312230626.2080be3","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312230626.2080be3","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"c6a46be14a607d9a19e98331ad2340b79855f861","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312230626.2080be3.tgz","fileCount":2127,"integrity":"sha512-aF3II+r6xSC4JKuQZyV8NkVLzan9MnuAW6wqJnqcphUHjsZqBL5ARnvzNudJlzIoX9d+jc3BjfPZM67ebtSgsQ==","signatures":[{"sig":"MEQCICiySVAEEWBbkWtFrwHe1mbkRe9wF4CkaEd5YEAbwtWeAiBgFNoo7SLQXKUu40VknI2A0p1R5jv9YjrCfc5NB+BhGQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312230626.2080be3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23017811},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"2080be30e412b935d6c83c36960116b0008e74ef","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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: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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312230626.2080be3_1773356815739_0.9142069163102005","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312231527.bc1ba5d":{"name":"remoteclaw","version":"0.1.0-next.20260312231527.bc1ba5d","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312231527.bc1ba5d","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"ac434a45ee63d2e23ea72624ebefd517b987fc7f","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312231527.bc1ba5d.tgz","fileCount":2127,"integrity":"sha512-rlkbOFYpKAv6l9f9XkWf1a1aPj3QOSADFsSPZtmn+ej1JSKJUFz59D0EMrPySgZu2IT/o5VUzon12WkgQacAhA==","signatures":[{"sig":"MEYCIQDsYHG7y5CnTD4ZYgcn5zMQhChWPvzvAekj8RbmnUPDnwIhANVjAXe9WD/5FRDkiN6bgj6eEZr8cFzmAgrb+25cHPDN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312231527.bc1ba5d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23017807},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"bc1ba5d7a2753eacd8d0825d73d7fbcd655bbab2","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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: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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312231527.bc1ba5d_1773357357592_0.6434835984436924","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312232917.345324b":{"name":"remoteclaw","version":"0.1.0-next.20260312232917.345324b","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312232917.345324b","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"08d5d820e5cb0830a2a95d40c21d761007e52e5e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312232917.345324b.tgz","fileCount":2127,"integrity":"sha512-fib7DrS17yxyMTeuTh7Vb+jljDSRTgXifkOuA7FllYdYEQIv/i8DXOdPUtGPzfK20WKdbSsAOGf3ThxkE6Y30g==","signatures":[{"sig":"MEUCIA5zP2AWxJFSs9tRCDeAMCyNDOmtgfxX0oEGcDURgKi9AiEA0n48ta/RUxuMC6IL0Wlz/dCgfwdOagENSO+KD07mQvo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312232917.345324b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23020293},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"345324badc9b4780603757b6c792d5b487e1e5e3","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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: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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312232917.345324b_1773358187537_0.32160132392321406","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312234152.3fe13ec":{"name":"remoteclaw","version":"0.1.0-next.20260312234152.3fe13ec","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312234152.3fe13ec","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"b9476f9c938f4e3cb3ff8d5fef6e633a0b7f139b","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312234152.3fe13ec.tgz","fileCount":2129,"integrity":"sha512-jF5u6Pe+Rkml5Dk3oqJHGIWLSejJ5j6B4yb6ARv9mOr33TLTzlVUfQ9q1UWeJIOXJcQdYHS8OvqT4t/lRxKknQ==","signatures":[{"sig":"MEYCIQDr4TkxMWb4S7lDFPxCqYvv9fA3JDZW2InYrJanovuAiQIhAOWxi37z7oWhz724S7UJ+yw3NVJXLSIBLqP2xiSXjtvu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312234152.3fe13ec","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23018024},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"3fe13ec6f96130e185ee73097fb9a16c4aac15b9","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312234152.3fe13ec_1773358941922_0.18155391558909284","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260312235449.30bd4e5":{"name":"remoteclaw","version":"0.1.0-next.20260312235449.30bd4e5","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260312235449.30bd4e5","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"8c158c339a68d4b4bfb29375b5211288d83c1be8","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260312235449.30bd4e5.tgz","fileCount":2129,"integrity":"sha512-mcjUljdrcyyBmfUrF9XH8nUMkdkmTLuNFZxAmLNKsTJgRYEbJgxffl/a5XbB0pd8jPmBwI8xHMfLnAfd/WuyRw==","signatures":[{"sig":"MEUCIQC5bN6ycIsExRQ7KIMUgKK+yhT8gwyQrGbvR9dJ5iGjFAIgDU6JJCOB81Hn/Z8Rk27zNQ3ZwgC4SdPeQP/kB0ujUnw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260312235449.30bd4e5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23023299},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"30bd4e5eaedc99af89375f6b3cd2fdeb51b0549e","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260312235449.30bd4e5_1773359718718_0.32104159519767506","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313001325.4f54ecb":{"name":"remoteclaw","version":"0.1.0-next.20260313001325.4f54ecb","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313001325.4f54ecb","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"a4d3f3d1c7592e026beba6580f83dae5cabd84bd","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313001325.4f54ecb.tgz","fileCount":2129,"integrity":"sha512-OoueIKNFMU4/zbizvzE/l775kIZAACT2+QRI7mnVYFtJHSSTz853uI0+XC5Dx7xTSuLJx3EUpfnvUcFTZcI1hA==","signatures":[{"sig":"MEYCIQC7ydOyq+rwvUWZQr3QLRjOGk1oJmDJqUXO0aOWXan8ZAIhAO2SshXCWMX75hnNSNuBlsYZLeaaHF8Zd2tPU79WTcX9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313001325.4f54ecb","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23025683},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"4f54ecbeae6f738621713f94a16eb3f4a868b0af","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313001325.4f54ecb_1773360834320_0.9065765406514668","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313002446.aed40df":{"name":"remoteclaw","version":"0.1.0-next.20260313002446.aed40df","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313002446.aed40df","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"09bb3d6f8f259680216bae4ca8947175826bc25d","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313002446.aed40df.tgz","fileCount":2129,"integrity":"sha512-UQkA5sWFKAt+voeBs19Aucn7Pe9DX3rkYjfSYLIMLpFfDcqUceo5NEZamsrpcwtqLp8Hu4zH1fS+J3u0BSL5iQ==","signatures":[{"sig":"MEUCICHACpwaHezlpCUA7oYUxwzY5Cz0XfTVtY43fAC2DYtMAiEAmhSO0DDnoJWInwN19S96argd3Pi9J70sm3cfBay2gCE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313002446.aed40df","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23026045},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"aed40df0d67dade2476de85a2923b70e88215758","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313002446.aed40df_1773361513573_0.983479288095851","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313003358.9614291":{"name":"remoteclaw","version":"0.1.0-next.20260313003358.9614291","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313003358.9614291","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"101f644fa207b3f0a9366aa96238158d1ad8a23b","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313003358.9614291.tgz","fileCount":2129,"integrity":"sha512-YvMs6F7+CsZkLT6xTTknfzz7zhy96zWpgKG8A2h4QYkT2OmZvlXeqOKM4zM/daZ1MXoyHehHXeEKiP3eSolcfg==","signatures":[{"sig":"MEYCIQC1fcK2eRRg1uwiNuN3CwnkuIGnG0PdVdOHaC4zZZ5DjgIhANJk84uvpiJHso5tyKPHB1u5I+u5cWi9zbalNnv5eGuu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313003358.9614291","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23026041},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"9614291bbde804f729de487787ee48de62b6ba77","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313003358.9614291_1773362068312_0.6101698123254833","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313004500.03127e3":{"name":"remoteclaw","version":"0.1.0-next.20260313004500.03127e3","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313004500.03127e3","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"016b9c32b4474880fac4d68d4ade2958cbcf1b9a","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313004500.03127e3.tgz","fileCount":2129,"integrity":"sha512-SbZwIU79PZ4z43dQHXr3QSmiYYUFwaH8miuRaWxlkXcIkWXzFLFk0x+s2nYbT8vjq1YZHAdMBJwiGT90c+3U9g==","signatures":[{"sig":"MEUCIG2AVkfKojVSvTFIQdhjt5laveE9PT3i3wvueHaoCJuOAiEAu5KBda8nqmGYtUV+kT+pUwmGXJZkLnWAaJZgq5ufnxA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313004500.03127e3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23026087},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"03127e3d5078a2ee98b832c16efe22f447f20b75","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313004500.03127e3_1773362728746_0.2424897530906749","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313005421.fcc677d":{"name":"remoteclaw","version":"0.1.0-next.20260313005421.fcc677d","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313005421.fcc677d","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"b53224afbcc7003b933ef37635b39c35414c7fee","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313005421.fcc677d.tgz","fileCount":2129,"integrity":"sha512-krAp2QkZviS457nw6xXtONL0fHF8pIJhn2TwIkj0igllNjnBbfL5hetrQCRmjns3nTa5UDtitEUgkaDh7sdz2A==","signatures":[{"sig":"MEUCIQCkrPfqr5lRqvQ+VT1sCLoCMwjHUyBkcwu2C7VtXJKJHwIgLlKPU0Kb/NhioXj2rfQmzDAFrnz3h16bbo4N3mhIv4c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313005421.fcc677d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23026091},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"fcc677d6816fa68a5f649de8f3a707f2894dc1c3","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313005421.fcc677d_1773363288592_0.5798999008860166","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313011327.41449ad":{"name":"remoteclaw","version":"0.1.0-next.20260313011327.41449ad","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313011327.41449ad","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"03bb958e05fadef81f2cf577fb9c8a164fc57f2b","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313011327.41449ad.tgz","fileCount":2130,"integrity":"sha512-+D4wJP8sDYKEwajB6tssO5W4ie00cnKQFyneAPB631MyxKdUoqc2p95NiXsJfw4p+ICEHIxaFQGcJvVAbV35XQ==","signatures":[{"sig":"MEUCIGffV8FszdDheI/eM+ET3fVAfuuX6U2eOBzmOG56HW+dAiEA3MhmvGC0eIa1pJyDN0z9yQbKBgQ98OWO6EaTk0JgRvE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313011327.41449ad","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23027440},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"41449ad681b3a09cf7b586bb53dc29058493b4e5","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313011327.41449ad_1773364436563_0.5543678473631668","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313013110.b21c87a":{"name":"remoteclaw","version":"0.1.0-next.20260313013110.b21c87a","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313013110.b21c87a","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"fc2bb9d447aa7be94f3ac44ae2669bdda8bda524","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313013110.b21c87a.tgz","fileCount":2130,"integrity":"sha512-rGQjiSaxtqiHtjUwin/9NDnpvRTtiMsLXk0ezpG5ux/sYImIJJe2iA08sGj08qvm2d/Lv7Z+kMoJGnCv75T2Ag==","signatures":[{"sig":"MEUCIACU9aqgfwJHOCkgV3/TD9L7krpG6lRtn5h5cptmiNd1AiEAtMqZEuZGDjihjA4YohXwNZ4bmxt1rk9AU6vXru+bB+Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313013110.b21c87a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23027844},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"b21c87a45e67c83279b55730fcf887c479cc60cd","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313013110.b21c87a_1773365498767_0.6611360667964248","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313014941.91a0d49":{"name":"remoteclaw","version":"0.1.0-next.20260313014941.91a0d49","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313014941.91a0d49","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"342df15fb2a489d4544abe360f2f62bb093248c5","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313014941.91a0d49.tgz","fileCount":2130,"integrity":"sha512-2SBZaTObFyFSKv8aUjsfHqzwATo6gxvdta9yc4wBVsV1anad6Q9fXNPpHGI8ZYvNA7UEDNnsuiR0w2ucIEItNw==","signatures":[{"sig":"MEUCIQCwlFpNUan4jsbqfjyZdpqn8QS3AZ5csmhmOFzZ8hi7dwIgOJRB9UlUgd0g3AuVHloUv5QIKICLz8VKC+/aKHsrqds=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313014941.91a0d49","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23029985},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"91a0d495c1e0b331ac6afeee18599ce149d7f7a0","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313014941.91a0d49_1773366611394_0.22845052594967163","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313015925.9739858":{"name":"remoteclaw","version":"0.1.0-next.20260313015925.9739858","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313015925.9739858","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"ec2f4db0d17cc4482bcbf6a6ccf4ce4b35be256c","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313015925.9739858.tgz","fileCount":2132,"integrity":"sha512-pZXJ1W9epHyGDWLTNNmzQGXrWQ/ACGUVS9fdb7vQbVEBefIbdut7DCOyzfqsNKCXvzP7mFtrOZMMV0nUHWqGQw==","signatures":[{"sig":"MEUCIQCbNpKJYJUi8TTRyouSxLpdwNE2qxKAH5dVG0zp9uXtTAIgPL0POA2+3O+brUGRZzQebrVoXts7WSCA/7eAbEs2cJQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313015925.9739858","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23030338},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"9739858bcaeb7164be838631c37c7b69fb2d3812","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313015925.9739858_1773367193197_0.9711781258341965","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313022434.de7fa3f":{"name":"remoteclaw","version":"0.1.0-next.20260313022434.de7fa3f","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313022434.de7fa3f","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"acc9ad90121d8f6dc0b8b89cd1203b70da99037c","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313022434.de7fa3f.tgz","fileCount":2133,"integrity":"sha512-01FnrBSV94hW8ehbjm6dWLn6EYvqkLHEeRo3HPSmNL5h2wjayGcy06IZIXgW5w5aSXwRaGEsq79flTVtaviJpA==","signatures":[{"sig":"MEUCIFKye5dnVx23nkYN4oRztS3K6+uWskqohjjXqNFTD6DEAiEAxH77QXR/XbVMo3cL9SRC+DcrON+E9oIzb9c04JykSe4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313022434.de7fa3f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23031139},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"de7fa3febdd653a26a39644f87b7665ff13647a8","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313022434.de7fa3f_1773368703370_0.06837319439528211","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313023401.14cfb70":{"name":"remoteclaw","version":"0.1.0-next.20260313023401.14cfb70","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313023401.14cfb70","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"ad3cb9de987d91c6c2496b0657439c807ff63abe","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313023401.14cfb70.tgz","fileCount":2133,"integrity":"sha512-k3GxLiQPIS0YmXZD35m+NkkfusJqf5HPzGX/dpS1Vi+TS658vveJsURsMV46FSZ48IW8U8eL3qwtEzAZ9YIBIg==","signatures":[{"sig":"MEUCIQD18hGgpwOz0zKabK1aRiqWQy289hP+97QqTflQ5E2s6AIgGqMogIZQ9V14/rIzNeNps0dhIXtX+FV+RQ+5+bjnV40=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313023401.14cfb70","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23031143},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"14cfb70f8875c783ff8f8030174ef7d8c963b8f7","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313023401.14cfb70_1773369267940_0.2969473422579261","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313065616.5c94215":{"name":"remoteclaw","version":"0.1.0-next.20260313065616.5c94215","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313065616.5c94215","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"cef288be69ba0f551d98daaf244a258105730e7f","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313065616.5c94215.tgz","fileCount":2133,"integrity":"sha512-JCz07NPqPoJDBeUGeN/iBMTX35kTgEF0WkL0ruqXbRg6j3ZiaS0DP5o9rM2KhmUievp62tu9w4QqHinQ5BVWIA==","signatures":[{"sig":"MEYCIQC4NeF/hPkwqv+bCZWLycAnPbTcFewpyzugCiubzmqmGQIhALvxxuuC45pmtdBObO1PErOpH1phTZoyy6O2enkafOak","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313065616.5c94215","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23031313},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"5c942154a455ae020af792cff324d59252812a51","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313065616.5c94215_1773385003607_0.8608661610607689","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313070718.4ef536a":{"name":"remoteclaw","version":"0.1.0-next.20260313070718.4ef536a","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313070718.4ef536a","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"c27cbb9125166fe932e3bbf5231f38c32690e2f4","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313070718.4ef536a.tgz","fileCount":2135,"integrity":"sha512-LA/pqGE6TG4DZO7HgO/tf+1EmB2ZevUu7gKsE9HqJN0VD9mby8uL3uwcUurpASq0ifC69dkt57GauO95PBjHCA==","signatures":[{"sig":"MEUCIQCL0ZUx8nvjxog5xsDgxWfK+3qWOSxlR3Usnx5KeqRTNAIgHeiPcqfS8GM3nGmjSxB3UAbTjP+PtN38UYAPDqXHIvI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313070718.4ef536a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23038007},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"4ef536a68daeb830a13fd3e4606ff7492524ecad","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313070718.4ef536a_1773385668381_0.18185656680641316","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313071656.58d6325":{"name":"remoteclaw","version":"0.1.0-next.20260313071656.58d6325","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313071656.58d6325","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"6c8724410bc0c3fb8e4cba193c3324ef7a041293","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313071656.58d6325.tgz","fileCount":2135,"integrity":"sha512-j7FcI5TQO3Frj4OsXBtK/SLrPbzPAVtaMxiYo4tta5Lk7g6mtiNqfFzVaAEASxMWYzB4hYJCAAuNO41QXlU+LA==","signatures":[{"sig":"MEYCIQCyNHNOjTdfp+bZH+6F5aZR5dooRCeNo8K7GswMTDuGCwIhAI2mKA1bky90LdfaTF2OIAP+IPB7PC6NBMchUZ1WQGEN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313071656.58d6325","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23038538},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"58d6325df96c785de10b01cb5b506ae44f71aa92","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313071656.58d6325_1773386246342_0.4304844826217977","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313072811.bc6248f":{"name":"remoteclaw","version":"0.1.0-next.20260313072811.bc6248f","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313072811.bc6248f","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"9902db294df24f228113c511fcc65b8298761e18","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313072811.bc6248f.tgz","fileCount":2136,"integrity":"sha512-S3kkmBtq/0xXKly79/sjaxs3sAAauP6Vn8byMZT2BIbwDz87vOrF/Yai2klXevP1Cp7LmQBqkVimeQi48bWDMw==","signatures":[{"sig":"MEUCICu5YvUMVGJeIm6DADVh1CapJ5I6Bdu8ka/BQl5T351KAiEAro0IyO24vVg7aFdRWrR/OGdK11dH6/QBXNsXO2Qzv5s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313072811.bc6248f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23040374},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"bc6248f01f8dfd72d2aca21a7eef23f3a3dde868","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313072811.bc6248f_1773386920794_0.41614152362837253","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313073851.3ecae8f":{"name":"remoteclaw","version":"0.1.0-next.20260313073851.3ecae8f","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313073851.3ecae8f","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"902c2accf2ee9cecffaf4bd4f7d66abb2d687a47","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313073851.3ecae8f.tgz","fileCount":2136,"integrity":"sha512-yvNrLdX75S903MF3i67vvPDCj67W+CTb2OD1rjha+pGwwS3gDdHwyFNDTp2MhWjzt4xPcLs44YNVfDPPkXigQg==","signatures":[{"sig":"MEUCIQDNc3wD7BqBD2oRAee4juR7ux0q02fvpFIRzSPh7xgKRAIgBRk1+HFIzzWysXVAiw1YpCLRv/YDpQMPJK2ws2hhE+0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313073851.3ecae8f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23041048},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"3ecae8ff838cce2dc5eb83fdfba9c06f2c17d6f8","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313073851.3ecae8f_1773387560623_0.2330051586758246","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313075816.9c13a81":{"name":"remoteclaw","version":"0.1.0-next.20260313075816.9c13a81","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313075816.9c13a81","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"ff2a24c46b2e0afa96c33ae9588bf2d5b2f38432","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313075816.9c13a81.tgz","fileCount":2136,"integrity":"sha512-n/LOM3przI6i4dhU3k5FTfCFAOzbeT9SFYYTFrK0DDyq3qXWA68ghX/jDyPmtWV32sWisn5yfbCwgGa+VB6r/A==","signatures":[{"sig":"MEYCIQD7STmDac3kJ85vabx35+PE7RnKfwi1sike/dtz4L1G0AIhANR228QrjynKA2UFbr7y7PSFl94a5YRFO6zamGXwiD+q","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313075816.9c13a81","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23041048},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"9c13a819c04cd9a4dab13835cf8ebbaedbc12028","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313075816.9c13a81_1773388725601_0.20563401625282718","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313081404.9bedd7d":{"name":"remoteclaw","version":"0.1.0-next.20260313081404.9bedd7d","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313081404.9bedd7d","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"3414349670145c46e1d46df926a54bc7fb47fbc8","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313081404.9bedd7d.tgz","fileCount":2136,"integrity":"sha512-gU7TTU5daX9X4S3OmfPFaQDOIIGq2MLc0EGKeRTlugOfvi1yScN3rl/bh1oKMTOx5ZCTpKGXiWBk377iHjYXPA==","signatures":[{"sig":"MEQCICAu75enwUgMYqR4IYEoKZfLYeC7uRHjOiD7RszlcoJDAiBNtbeyC+iWdWSYrZmFjBp9RHfi2w9zoJTjVsBAnFZOJg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313081404.9bedd7d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23041513},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"9bedd7da149c56a5d82a752d7837bbd6fdef0dac","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313081404.9bedd7d_1773389673314_0.6907986756977802","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313082305.7d062bb":{"name":"remoteclaw","version":"0.1.0-next.20260313082305.7d062bb","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313082305.7d062bb","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"fcff85a1e281c61f808927dcd74825e2f6844de7","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313082305.7d062bb.tgz","fileCount":2136,"integrity":"sha512-MfgULP48dzm9w5xeoIOotE8J9Gs3U55r1fylqV8/B4H2kM3XoarWNPw2weJoYTOoxJWNKASdLUs++Ytd3X166g==","signatures":[{"sig":"MEQCICIm8fQh5oDvFS+RKXlEfYimFBkHkurpw/zERkGs+RlzAiAy2ndGepzQRKHlJO5vOeY7gUG3wpzaVFyiQScTtnUSCg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313082305.7d062bb","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23041567},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"7d062bb0494b5546ab4510a378149b43d6b307de","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313082305.7d062bb_1773390213994_0.21767129338365865","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313083227.921457d":{"name":"remoteclaw","version":"0.1.0-next.20260313083227.921457d","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313083227.921457d","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"6d9c80475c7017eb49ff6c399c176d2be4c9e50c","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313083227.921457d.tgz","fileCount":2136,"integrity":"sha512-88uHB2RCkHs5NrTW3oa/NJyBDdapoyGR0bfU10b9Wz+jQWEhkBYJRPTxINsZlg7oNO5tE3n/gGFErXZX0gpUYQ==","signatures":[{"sig":"MEQCIFhjdo4IWCAFWzebzEu6v7dgSjS4a2uzun2iuxAIT7vUAiAunS+vgHq+Z/yc4hq7qbcCpwydlDV7CadXt9plsGYTNQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313083227.921457d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23044231},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"921457df97779bfddba9fade8125cdb1c8df377e","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313083227.921457d_1773390776903_0.27751632731923603","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313084137.71aa205":{"name":"remoteclaw","version":"0.1.0-next.20260313084137.71aa205","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313084137.71aa205","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"b4c7fb4fdc1631838d676e910bdd682c6c1acb69","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313084137.71aa205.tgz","fileCount":2136,"integrity":"sha512-+C52jg8l7Xo+bUdPz8S2SvaVhJMvqIMwhZkFOH2OoTnGvCzNuhOL9SlYphjP4sa/JQ5J7cZLsiu2fCHqLHD1iw==","signatures":[{"sig":"MEQCID/LTqkIUMCPwbpYjMxiYKwDH7EwddleMEQVxwI8/37/AiB797zlBLcN+Z4aCvoDF5na9amlEq6d/g2QR+Xx1WHaYg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313084137.71aa205","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23042821},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"71aa2055007d185937db6b093d543873c648b1c3","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313084137.71aa205_1773391326764_0.7056634605753216","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313085242.811c649":{"name":"remoteclaw","version":"0.1.0-next.20260313085242.811c649","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313085242.811c649","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d58540ed736aaf433cda0cc9efd165b5a0c7082e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313085242.811c649.tgz","fileCount":2136,"integrity":"sha512-UaJfWhIr3bBrd16QL3JSrgKTwynw00iOX/eK+X55MyWgphH1d7tjTO3fX4SJ/MBBzGNwmmS18Sm3KMBCy8WHqA==","signatures":[{"sig":"MEQCIA7rCan83FCd0nDMeEKEFSzyW2bF/arrrcOx3peEuwtiAiBCwu0qDgxK6SoAWV9cnuZedyB/RukYvael1Ylw40My/Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313085242.811c649","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23043467},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"811c64976ba2c5067dc0b2cd7902b162b819c272","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313085242.811c649_1773391988969_0.6708600669524281","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313090158.938b3d6":{"name":"remoteclaw","version":"0.1.0-next.20260313090158.938b3d6","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313090158.938b3d6","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"2df8e4d675ef395fc0202b8f806556f1706dbd75","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313090158.938b3d6.tgz","fileCount":2136,"integrity":"sha512-ntnmszemo6RG0rETaSRqGQ57qrYqFIknaqJ+4CvUYeYXPUE1vW7RodEvKPZ8gNvCLx+Dr9hXxYjxpoUtdj8KGw==","signatures":[{"sig":"MEQCIBPFowkPLKB2IyZvCyBNzBlpRY2yg62MqsEQIZO1V0sZAiBfSzrq9nZMCGzApKveHHfsylDHM5mlJT/s0kc+0qflyw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313090158.938b3d6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23043856},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"938b3d662ccfd212e9626b740eb611cce2c1801c","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313090158.938b3d6_1773392548719_0.6598830376560219","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313091127.3ccc794":{"name":"remoteclaw","version":"0.1.0-next.20260313091127.3ccc794","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313091127.3ccc794","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"6cf583606d34c5057a0e00bd4359e42805b23e8b","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313091127.3ccc794.tgz","fileCount":2136,"integrity":"sha512-yzBGcyosrMcSSFiYHo2Qx/ojk9LcKWIQ0izslXiv2X8q6zlmezXzGYGm7P826NaBjd/1Uf6Mpe6ZnkALAOecGg==","signatures":[{"sig":"MEQCIDf+CEmlgk6iBmx/8kzHryg5wvtdnWz4o1CqSpmdfJzlAiAOjzNPKEFKZkRoQz0BLP0V0MVYfMsXMjbv5BkOyIMG/A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313091127.3ccc794","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23043958},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"3ccc794e2c1cd88f3dd7d65f3f4577adb6db09fa","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313091127.3ccc794_1773393116260_0.8298837167785595","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313095017.17446":{"name":"remoteclaw","version":"0.1.0-next.20260313095017.17446","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313095017.17446","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"cbcf674ca683a90edfdd861827974121008547bc","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313095017.17446.tgz","fileCount":2137,"integrity":"sha512-/NJu8+wi66EXAtyzu3j8Skd0XF4REsvRZqJzc/Vh6GjH1ONnLbvqLKht6McTIb/rJCF3tdLNZJUn4OyvUw/gpg==","signatures":[{"sig":"MEQCIAdJ9F7vli9yG34asP/o3uaHk8d3RCTefCJMeNXMo2DVAiBXn9m0A+b/Jcch+LSdLjFE/Cxd2cfL10YhDPR/V6rhzA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313095017.17446","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23049399},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"00174462f2326edbe838a526639bb6ccca90b6f9","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313095017.17446_1773395445072_0.8338922498237253","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313100155.de56c67":{"name":"remoteclaw","version":"0.1.0-next.20260313100155.de56c67","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313100155.de56c67","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"3dd1f8f6a9057a4ceccab2956ad1c57adca6eb50","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313100155.de56c67.tgz","fileCount":2137,"integrity":"sha512-yxqlNa83U7OzeSfvNMVrE76MoBvphEW8GmyIeJbP26k6e0AjdwD7ZPE1JodzTplfMgcgVVEmSDpis3Hl5Cd+AA==","signatures":[{"sig":"MEYCIQCT+1P6ELW5NqvbwqoR7OaJ7z11BCsHsOr1RlM97xgjGAIhAN1kDbqAiWm3sriwqKgGpo+lrEBG7b8+wsYmvWHJftiK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313100155.de56c67","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23049471},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"de56c67322b0bbc5544b885138dcd04c98aa5480","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313100155.de56c67_1773396143993_0.20276732023449018","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313101125.bdc457c":{"name":"remoteclaw","version":"0.1.0-next.20260313101125.bdc457c","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313101125.bdc457c","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"85a9a5324e59099fee5827df6c474f858aee7194","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313101125.bdc457c.tgz","fileCount":2137,"integrity":"sha512-VGsZokXYpE0g3MpPsLsTY64M9jqcfCYDQkYmdT2cR+T9JlOPmcs/YBIqLTgaNq6Mw7bgIh7zY9oH6ndGxz2QEA==","signatures":[{"sig":"MEUCIQD7r4XIgWbsv5/al7VCzL2kaukkFzfHmEdX6kleyLrZPAIgISU+RoSpFr11TDk+rC//OhWjfHVQqk70/s8Hk2HTytc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313101125.bdc457c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23049845},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"bdc457c22fc3a7678a02c18e40cad26ea36de1bf","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313101125.bdc457c_1773396714273_0.19841026111327897","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313102051.0832c0d":{"name":"remoteclaw","version":"0.1.0-next.20260313102051.0832c0d","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313102051.0832c0d","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"5ad76517386dfcd68b5bb27d0e6e3005bf7873d2","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313102051.0832c0d.tgz","fileCount":2137,"integrity":"sha512-77JnN1MBAV58q/wExgx8Eb7OrMx60QZ+bw1STZzlibhKF3mf2FpFf4QEobZecTUi2n3YB6+F1mgj3SGpbZQMtg==","signatures":[{"sig":"MEUCIQCyzCK0YHu6Z40/jShqG4hAJ4V5MCgtu2s1BA7bK64yawIgU+7fKH8sEAoBrFtFcUT/URIFbAh/ubLnGyc61/pxGBs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313102051.0832c0d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23050537},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"0832c0dc62cbd761f735281b3f393848fadf0d8c","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313102051.0832c0d_1773397283502_0.9346992750676903","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313103048.7116aa3":{"name":"remoteclaw","version":"0.1.0-next.20260313103048.7116aa3","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313103048.7116aa3","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"98cb6e7106a6a3b8c0267dc2541351387f27cfff","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313103048.7116aa3.tgz","fileCount":2137,"integrity":"sha512-+EYQftB9Yn8CbyUj7rQpUIRSWMyb/eBcRRKjoYRM2up6E7IBtB33gECPPLlWD5GfZlRYhWb6JDxvdp60zNUvbQ==","signatures":[{"sig":"MEYCIQCd5ozKoKBcqCt1erkupWwcuLWyNyB5i2exuMgnTBTrYwIhAKgySpWtfmC+Kd/VZE53w6ctDf6y3CdxfY3EwmaxRAa+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313103048.7116aa3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23050537},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"7116aa3f4d52123b2247f3abe905f81ce36af656","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313103048.7116aa3_1773397878487_0.46711864468558484","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313104011.f94d9c5":{"name":"remoteclaw","version":"0.1.0-next.20260313104011.f94d9c5","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313104011.f94d9c5","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"982bec658ec9c2f92176555e0f29b74988e764a0","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313104011.f94d9c5.tgz","fileCount":2137,"integrity":"sha512-IhFrRFe1O9U0yjdRqeBsA4lRLpjFojdeaeAa1GgXVWYfdyZIXdKLEUgQuLmWmwuaRaXjgpgMeOeR8dx2bf/8RQ==","signatures":[{"sig":"MEUCIAxukwzAjC2oPtLhG4zS8zBQIeJGe0RdU4Jb6LbsKLHdAiEAstuQXFkGkkX+aU3geZaim4MjEAjj5Z/NcTZEh6wrX2c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313104011.f94d9c5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23050537},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"f94d9c514f9f0bf79ef978e09c1a17387ebacb5d","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313104011.f94d9c5_1773398440950_0.8653587965958653","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313104906.5499996":{"name":"remoteclaw","version":"0.1.0-next.20260313104906.5499996","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313104906.5499996","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f45214a92cfa55882cb91de2e53b875c6f5c7b7c","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313104906.5499996.tgz","fileCount":2137,"integrity":"sha512-SBB6vUkE6kNqcv7Qg+5Hh3Hnc4doLe9t3W+6+oyo6qnzEM5o8hTXzakQe7j8WY7N/Gu/XncJPniLx+KMdeJV5w==","signatures":[{"sig":"MEUCIHWOiXyZcbRfO+orXLCHOpQVEQKxB/27rMB2r0Pwhjp5AiEA2PlMigN6dIb/7bbWzEjPlDjeaT2VMFz1N1ldBP5JbUc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313104906.5499996","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23050541},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"5499996ff9d4660b4372c2d4f99e6e884ab18a3f","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313104906.5499996_1773398976305_0.3290094391956675","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313105834.0ec7de9":{"name":"remoteclaw","version":"0.1.0-next.20260313105834.0ec7de9","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313105834.0ec7de9","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"8f53baab643f9aae698fd6e2c48670f2a38fc73b","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313105834.0ec7de9.tgz","fileCount":2137,"integrity":"sha512-vkhPCbeUl/8xpTD+WNdxJqGmng6RQC4H8XGLA+9O5FwCKT5iYOJUtxdW5YRYRCdpJQ1/XzIcHInvg4Ig00UOEg==","signatures":[{"sig":"MEQCICY5WpurlXoG+23vMqw3fWFTUmBs7TDnn+DR9MRRXliEAiAgZrMXeXn1SJPIxDp1FQYMuL6yDwlznCv7bHAmyl2OCA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313105834.0ec7de9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23050891},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"0ec7de92f4c6d364c36b661ac86f0690b5b9cd08","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313105834.0ec7de9_1773399543271_0.6186258353254785","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313110731.2c12fef":{"name":"remoteclaw","version":"0.1.0-next.20260313110731.2c12fef","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313110731.2c12fef","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"31c5557ddc07a8542fdbc0edb3423ee9956c0b2d","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313110731.2c12fef.tgz","fileCount":2137,"integrity":"sha512-A8Te+5hyS27B9TJi9sw7jl81CQbUztcEC3YferqxYgyY3kZMqvofghekXHxNknQ2iQSI3SY8ambtfZPrOUjcEg==","signatures":[{"sig":"MEUCIQC/7Iiwl7wnOUyZncQZNjHM7zGvb3HhxOLthtZlK6hk2wIgITiwEAd2YHalw/lWD40MqIoorjcVYByJwFPly04xjwk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313110731.2c12fef","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23050537},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"2c12fef624f95fd85c9cb74056b460ef5c8a5f8a","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313110731.2c12fef_1773400081279_0.5184126391648982","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313111743.97475e0":{"name":"remoteclaw","version":"0.1.0-next.20260313111743.97475e0","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313111743.97475e0","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f534e441ca7126d7ff1787a8097ed197a976e1c9","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313111743.97475e0.tgz","fileCount":2137,"integrity":"sha512-7S5z/PjIxUwRwmCw1Bt4+24pbitRXh3ezNo+b6AEg4bK3pOOarO5gHPgKrVkJCvmZEfEo4fE7i9Cr+ZIPWUhbg==","signatures":[{"sig":"MEQCIFhzGXac6BAEIzhvqeJQeMQe42QEo9co1L8Id4qLsuAVAiA8xXTzWfJQMBnBHjRDgY9wzG9ORu4PiRJSvXAA9JPogg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313111743.97475e0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23050891},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"97475e08c827951080a0f8f557c6ca411f550d76","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313111743.97475e0_1773400692743_0.4646176014232377","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313112706.90d558a":{"name":"remoteclaw","version":"0.1.0-next.20260313112706.90d558a","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313112706.90d558a","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"255ff989bd7771f53a66d957410cd47093ca2d58","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313112706.90d558a.tgz","fileCount":2137,"integrity":"sha512-hlan185LTzRLsmk4/+vvPitA4+FqxRoZRfE3gmy6JFbKlgJULcHDlfRxI/6cPc6ASpbt5yfqE4L1cXfQ5yjmhA==","signatures":[{"sig":"MEUCIQCTKpphLN+AwdQ0yp0ZhdLVDwW0mq3fciVQ8Cq5KIzIOgIgGeu5w13LVT70Gcgoo+wOru8+cwROK5I7OfuStuCmt5c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313112706.90d558a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23054641},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"90d558a9da1b412553ab76ea682aabdd4af97f10","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313112706.90d558a_1773401254196_0.6223693022124399","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313114550.6cd4303":{"name":"remoteclaw","version":"0.1.0-next.20260313114550.6cd4303","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313114550.6cd4303","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"bf35adf9d0284aca35f6d060e1f1665f71e9da14","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313114550.6cd4303.tgz","fileCount":2137,"integrity":"sha512-mYeatHKpNsZs1SEDvLsqTV+99ZM0taZ/Ythe983abZtlAfuJvAZclFLOljfPspP6kTUIJ7e/rhoO1fRFP4a6Xw==","signatures":[{"sig":"MEYCIQDbm+H30hCcXaJ84WuXE3QIBjc9qeQ6VP18ORhSCPO5eAIhAI0LPesSmaNBoDDuFfllUUXuA0Lefgw3qN4pN4CX9wf/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313114550.6cd4303","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23056876},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"6cd430372939f7ef762179603c653c549a92b0a9","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313114550.6cd4303_1773402380720_0.7641599235912422","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313115759.0455aad":{"name":"remoteclaw","version":"0.1.0-next.20260313115759.0455aad","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313115759.0455aad","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"2c4311c9f22b2c2102db95448ba127fe7b6f9232","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313115759.0455aad.tgz","fileCount":2139,"integrity":"sha512-QW5tk6Mv9RTIaG1UgG3zQBemGbtTNqeXKu6OabDrnYvg8CPUYQp8elr2Ii7ssOvHVqtMkY2zNAL9rdylKyIhPg==","signatures":[{"sig":"MEYCIQDyzle3yPQdRh1nLDNKm/s486E01CKjbaN+v43++Vx3lwIhAI5FNKjuY2GzvalxH41WsZ5gAkzSiJ54DZQkKTt66Gug","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313115759.0455aad","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23058348},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"0455aad4b10f60311e545fb376e97075a7b15cf7","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313115759.0455aad_1773403109141_0.5249355670170213","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313121427.241210b":{"name":"remoteclaw","version":"0.1.0-next.20260313121427.241210b","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313121427.241210b","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"147d7df42b41c80e0f68e90cdb29487096dade4e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313121427.241210b.tgz","fileCount":2139,"integrity":"sha512-KlJNjsJgCLKevKUnk2jIYy8ushFNRRw0B3fHi4Cx0cLD/ozS8uDBzSMVSG/fvDTtxmw8buZ+lLFdpxX45C9woA==","signatures":[{"sig":"MEUCIQDYnIZKCz8gZIHeVk0NL53CPrJYsZy7o5gGyG6yehOHzgIgdLJdhSVqDRFREA2XHDHYOlRzys6ffRnjGLFDcSpzvxo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313121427.241210b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23058452},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"241210b7d94ff65a7dcfb172285eb25faac2d40b","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313121427.241210b_1773404096678_0.689348669047477","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313122417.6f22116":{"name":"remoteclaw","version":"0.1.0-next.20260313122417.6f22116","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313122417.6f22116","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"6ec445b5ece9451846d9fe238c7f90cd355c97db","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313122417.6f22116.tgz","fileCount":2139,"integrity":"sha512-Ze4kMSbun4IKR2Ekenn1zG6QIAZ/rHvbInkDwOZdg2zMhooYI6K+yhoUTmCKtyToiXjvPukCsfTdzlsZaD8Fyg==","signatures":[{"sig":"MEUCIQD8Nf5HrFs9x1r1cyNNXU5/LyQMsPD/Y+DFqb05zbTuFQIgaU3TeZlOmEuJ+LR8DF+HlQICmwc0gfYlpD6dj4F4VAk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313122417.6f22116","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23058810},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"6f221167ee0f23bc88f159e5699d3a8687f0bcb4","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313122417.6f22116_1773404687143_0.7130469111560209","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313123739.a6ffdb8":{"name":"remoteclaw","version":"0.1.0-next.20260313123739.a6ffdb8","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313123739.a6ffdb8","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"5bbc37ff86cd51bfd4b984855e9edd42edccea66","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313123739.a6ffdb8.tgz","fileCount":2139,"integrity":"sha512-z8lJlNqzvaUntiMMTFN1gKkNjL97ojOuUSaTDRF55+p8em5vshRmfw/eEy8mj6wmZvaVWrGZkEwC70WjCZJnOw==","signatures":[{"sig":"MEYCIQCT5yKe3PUGI7aIEMfCKcqPP0O3tE2TpQCx0qJC8kATnwIhAJkOsNNyHxgTqXAw0Me0qEtyGE5HYlGDHLIGTUYIsDm5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313123739.a6ffdb8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23058760},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"a6ffdb8ab061707c688edc97e35f7ef4a6a77e89","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313123739.a6ffdb8_1773405489211_0.8637746602564116","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313124721.2e2ac68":{"name":"remoteclaw","version":"0.1.0-next.20260313124721.2e2ac68","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313124721.2e2ac68","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e27c3eda7ef5c8560a0fa67663771ad4754a084e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313124721.2e2ac68.tgz","fileCount":2139,"integrity":"sha512-IZwtKmOx8XPAuoN7aIRKd3gP00HgBsrdjbIB359DV4L7pBBN/enLLw20ek+z6jGQHNCDinhePxdbvUQshoK/uQ==","signatures":[{"sig":"MEYCIQDLPSM8WAX/ExUFmNvHRxp8qGcE1tuW0kcBYJxsUywO7QIhAMUNZzsHFH6Fqioj87e+Z2ybW/A819v/OtOfsK9m1qLg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313124721.2e2ac68","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23062064},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"2e2ac68c76cf5d9fa4f118611d8ef1fc9a07eab3","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313124721.2e2ac68_1773406072630_0.15174190231026818","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313125704.b32e3db":{"name":"remoteclaw","version":"0.1.0-next.20260313125704.b32e3db","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313125704.b32e3db","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"24665817654ea0817f1cd211b0e3815a99658517","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313125704.b32e3db.tgz","fileCount":2139,"integrity":"sha512-FZSvx9YYaO3ECeTCV+P6h+2XJGSQY3UcvvUXHSu+ujb4+4KuOUIwfdKg8MTmu2VLuLzGcXbmrfAjf/UQKF+m9g==","signatures":[{"sig":"MEQCIB/5rLrPLjFc3kPu2rFfjJ6pWKO1xjyvRSP69SML5Ik5AiAzM30O1Xf0Dux5VI2cwsI8YNyhO1HraMzhXhjbO4o11g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313125704.b32e3db","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23062504},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"b32e3db300acca4bc123a4b3e34d45991de24900","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313125704.b32e3db_1773406651495_0.6127972553203143","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313131431.be93f64":{"name":"remoteclaw","version":"0.1.0-next.20260313131431.be93f64","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313131431.be93f64","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"b3a42be055a275953c4d6a38bc7ea18cb7fc8c7c","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313131431.be93f64.tgz","fileCount":2139,"integrity":"sha512-g3DXmwaC+Knqe6Z/d9vyhXBtWZX3YNv/kNmkRaqWViLyu4Oa7PDw5P7xCau9fqVPb8keCYNHGks0PdyqtwKwKg==","signatures":[{"sig":"MEUCIQC/D6gIyyzMRPtJ0p2Jt1Yz24rkWs65CMDfyAvlV4V74wIgUVNCL61ZcJ/fpAmrGBrs8P1JBkHe0DK7kMgJrnG/nAI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313131431.be93f64","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23062624},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"be93f64ea2390e3d1ee6a77fcd36577ce50d05bb","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313131431.be93f64_1773407700870_0.20147492274571843","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313132411.f9027ab":{"name":"remoteclaw","version":"0.1.0-next.20260313132411.f9027ab","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313132411.f9027ab","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"48bb6db7b8123dc750108951969f5dc854449212","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313132411.f9027ab.tgz","fileCount":2139,"integrity":"sha512-thV5pB135GRdF4hWLYfbFaAjc4onm/NOVViihQNYqB7YEPQaneVT29U7Wm4exsL+F/OXZqbnv2snCYk49XG0iQ==","signatures":[{"sig":"MEUCIQDrSweLNiDg/Gg1UWWSeI/oWrfWgfRe1YIZawZ7l+8rbwIgCf6xUjwlu1oP5YC0L1QB8OJJVWZ4uPeiBy89B1lscOI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313132411.f9027ab","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23062628},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"f9027ab68c797895fda8ddf997abfcb98ce540ac","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313132411.f9027ab_1773408280243_0.93639697592991","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313133430.eb005f0":{"name":"remoteclaw","version":"0.1.0-next.20260313133430.eb005f0","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313133430.eb005f0","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"c9f1654d9c324c379c009d8259084056ee6a1ca4","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313133430.eb005f0.tgz","fileCount":2139,"integrity":"sha512-Jt86V5Cnh1tuYeejBZ1Hn/Sdshfscxp7X4+KukcXX3ltKUYxIDc8yyMI+kk8mq3rkTfxkymzEwOuu4FjOVXoWA==","signatures":[{"sig":"MEQCIEXCQpM5xQSbn7hDm57RO0BwUGeKHOYkm/vi3jq90yIIAiBOCqQhqUOiJupkm8DBSzJLUnTTcq24bc/Wbe92rkzAXA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313133430.eb005f0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23062978},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"eb005f09af12199e876db78e508d04e79568037d","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313133430.eb005f0_1773408900698_0.03904118770892562","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313134550.ffe4c63":{"name":"remoteclaw","version":"0.1.0-next.20260313134550.ffe4c63","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313134550.ffe4c63","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"26c4ea2654014ebe81f42298c3757445e2c78f9e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313134550.ffe4c63.tgz","fileCount":2139,"integrity":"sha512-OOleZv3hYfexiHdDS62jCHTS/BOqIvSSbqihpQsi7ApfC1BURnPNXW2Dt0JG5xqpLA+vMGN67b5iRcCuqGb4BA==","signatures":[{"sig":"MEYCIQC7jz8HVxxroWdWbmBPImZhb6d8dGC2cd0o+IUxgT3niQIhAOOn+9GT54s4c6BuC4tu735Ejs7YOxtk5YjeInUkf+eH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313134550.ffe4c63","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23062628},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"ffe4c632720d29cf093f501b9e60193e9ca1cff7","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313134550.ffe4c63_1773409578648_0.5408799600478544","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313135554.c691f27":{"name":"remoteclaw","version":"0.1.0-next.20260313135554.c691f27","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313135554.c691f27","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"9b6cdb96eace835e3ac7e1cb4d3a36cf6ea2d07a","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313135554.c691f27.tgz","fileCount":2139,"integrity":"sha512-nDvfIfD2r6SY0OG8cs0ZwinIEHE1HCY4O8y+8XDvIXmCkZ8xuzwVsd/d91ZxEQTQWCAaCVYmYPxASB7vLsY/vw==","signatures":[{"sig":"MEUCIQDcqqgrOki8eaHiZ7tDNaDzAuFPAwnBwDQXfbulk0t7oQIgO5QlQX8npbjZk+P9zOAeWn3D4yHEgMWPlhi3giFUyv8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313135554.c691f27","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23062624},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"c691f27a99588f817c95adf9d1585819458e6f3d","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313135554.c691f27_1773410184389_0.5057841635770941","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313140613.1336811":{"name":"remoteclaw","version":"0.1.0-next.20260313140613.1336811","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313140613.1336811","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"950d9cc59ebe00e7e6b30760826773db8b3e5807","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313140613.1336811.tgz","fileCount":2139,"integrity":"sha512-o9AJk8nuH4hNAlULm87jHoGawdxFj2JnoRiEEqNiwlxYbxB90X6yuFvFZapFZcPaHIjyx72uYcTCQeZZnLR/EQ==","signatures":[{"sig":"MEQCICnSTWxYupgwt8qG6SK3B6RHZEqSGq2aJLeZpLeViQ/jAiAUZcsJFFL/kNKaFGjV9pasu26/mk9j4sCWjmorV7j9Hw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313140613.1336811","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23062620},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"133681119ad9fc89d83f54e4a8ca77ecefb2db6e","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313140613.1336811_1773410803153_0.2279986883098173","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313141548.e543407":{"name":"remoteclaw","version":"0.1.0-next.20260313141548.e543407","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313141548.e543407","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d340d4e2b95664cdb2d2caa4df9c90137c389485","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313141548.e543407.tgz","fileCount":2139,"integrity":"sha512-+HucIOyLb+OvqRUCq3l46BoI4HeK202GsC7fZ/tf1b7ccXD0z2p26uQZl0nbovw61B1n8YMynn+7dL/J3VYWmQ==","signatures":[{"sig":"MEUCIFb1qTYx51FC4Uj441AuRRjx8+MxqFOtZYMn+2+VIXb/AiEA5/7XUqnjkc4Ag1Z4EOiIwAdig28qbG5+bkzxNLzUjGM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313141548.e543407","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23062978},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"e54340767f279e98866c86e163696acfd84687c7","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313141548.e543407_1773411376356_0.3864822310194991","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313142512.6b674a5":{"name":"remoteclaw","version":"0.1.0-next.20260313142512.6b674a5","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313142512.6b674a5","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"cd414a4731f930c7ebde351001f4a9557b931c7f","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313142512.6b674a5.tgz","fileCount":2139,"integrity":"sha512-L1YOfCxfZd2bs57IM6aVKIS7khFNjBj3OUw9DKe4YN6PqU+FYzUsbhowCn9it60X/DoUOTQx5tJfgGWiRAIGfw==","signatures":[{"sig":"MEUCIQDGZ4EfdnfldNgcq51j1sxbXgenlljF0yzYbXdIznjTsQIgTLZ/zP7aPm75BzRPKbYhaWkDBEXbsSRXA+iheF/aXD8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313142512.6b674a5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23062978},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"6b674a5948a1d42115d85a4376419c2553fbc05e","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313142512.6b674a5_1773411942500_0.773211473066477","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313143501.091057b":{"name":"remoteclaw","version":"0.1.0-next.20260313143501.091057b","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313143501.091057b","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"694295295a6581b4440c94500b282606b91416ec","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313143501.091057b.tgz","fileCount":2139,"integrity":"sha512-OWKOWPhC3cSWUCvxHgqEHiwNcCXqKdeCXFABWRK6YpCB6jv3WDI+cUIxJ8/TqppUx1599p3wNnLuqywukjTcQA==","signatures":[{"sig":"MEUCIQCwnj0R/nQM/VndaY8EYngqLNM9xlXOoB/c0XIoY6oGHgIgadn1+I5J4UsQN3wXTRsUytsGp9AEdsYwvtdjd8FwVNk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313143501.091057b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23062629},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"091057b2d48ff89cf8dbf39a6df01d95ad6f2853","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313143501.091057b_1773412530260_0.9820415075552194","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313144454.9a1e774":{"name":"remoteclaw","version":"0.1.0-next.20260313144454.9a1e774","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313144454.9a1e774","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"82cc63aa97d3bfd7e812731092c6f4a51e00b731","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313144454.9a1e774.tgz","fileCount":2139,"integrity":"sha512-Jckv2WPRZYhpBB2BToqhSRfQJG8u2sKYca00KA69I+zT6Pdfu6hHxDPvMhJYNaBuKw1K3w+1nL7EZsqdlBsKew==","signatures":[{"sig":"MEYCIQDR6vTdXmw//+hlkEu/NrJmwF5wlneOMpC+RfIIDpwG6gIhAIJ3h1Mkb7Z0kIluO3qzqEz8lJnGGd+6JkE157kIAtQf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313144454.9a1e774","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23062978},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"9a1e774885cf6a4c3734b8cc35b1d5bd648df7e7","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313144454.9a1e774_1773413123913_0.17243151366169096","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313145509.212730d":{"name":"remoteclaw","version":"0.1.0-next.20260313145509.212730d","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313145509.212730d","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"008235b0805ee3887c3a345df5cfdc2be5c68bc5","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313145509.212730d.tgz","fileCount":2139,"integrity":"sha512-yzJhS47c1pqgV+SZDLNB/BFNUh/xZCfl0C4QE1hKqn/4iBL+q7VCDlv9GPf466afz7QNG01hiBp3Wy9bUC7MsQ==","signatures":[{"sig":"MEQCIAJcfXbpEiAAXhCf4V2zndidA13UrHGqfjBi4Z2hRS3NAiAYxhW9Odc3Hg+jjyR6TYR4xEian4ma8xAFmHOLOrL2uw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313145509.212730d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23062624},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"212730d5d186c0a955d62d588f003f10bab5f069","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313145509.212730d_1773413738302_0.04813657360419876","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313150444.482d0b6":{"name":"remoteclaw","version":"0.1.0-next.20260313150444.482d0b6","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313150444.482d0b6","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"78de131eae746bc28dc745cdfd8ef9a472099479","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313150444.482d0b6.tgz","fileCount":2139,"integrity":"sha512-uLX0W56B8NhyzCsBqS4TKeYCChVmIhzFugMWPqRDSWoo9F2Q9qY2zvN+1OmfPN7HeAtlN4On7VsIqViIm3twmw==","signatures":[{"sig":"MEUCIFEvYRDAMl+tGW/pGEZWJDOdlvesIYiO9MRJn42I+gXsAiEAzKisXKjeoTzckNuDwhcCtQ6NVaabFvoqtfNbPjMK0y4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313150444.482d0b6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23062624},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"482d0b6a6d18ef850f62a5874590f86c8b3ce26f","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313150444.482d0b6_1773414313003_0.13974396010063628","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313151408.cab39b4":{"name":"remoteclaw","version":"0.1.0-next.20260313151408.cab39b4","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313151408.cab39b4","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"53b147dc2efef0875763d6739ecc66f3f57892bb","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313151408.cab39b4.tgz","fileCount":2139,"integrity":"sha512-i4Ktk76SWagYO5eIJmnL80cOh07j+r9FcefYU3wV5KOBr2YppgclIJ5SxqG+QAV6LVlwdqrWkNYSjfQDO2jFoA==","signatures":[{"sig":"MEUCIQCrgU2tcMq6ID6n5NfmgLLzz4BiTbxqbMiBdSDnK18u+AIgcM2jNQAOYb6bDqojqYsoXlga59XTMNd8WQjsfUOnGs4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313151408.cab39b4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23062624},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"cab39b4901d13fa7e44fb267771484ca6dafa022","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313151408.cab39b4_1773414878271_0.513195918561794","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313152343.8f59b22":{"name":"remoteclaw","version":"0.1.0-next.20260313152343.8f59b22","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313152343.8f59b22","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"ab07c3aa56bc3e15003bfe42c91615467a1a0988","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313152343.8f59b22.tgz","fileCount":2139,"integrity":"sha512-LVmDbCNiXR33J1EJ+SncUJpGMxOX29LtR25oKEcXUyPvhY/R1RAVZQDIMd2XIe4CV7Ho1osdrjDQ5TUXED5/0Q==","signatures":[{"sig":"MEYCIQDUXhhsYuPbLtFbkxN2Nfn0+JDuN09okn17ng89mgF+bwIhAN5tM8h5+qRiKaW/hRUcUKOjVR42eem9L90qfTHiKAaf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313152343.8f59b22","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23065122},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"8f59b22f18298494bfc055181348be2055b3fb09","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313152343.8f59b22_1773415452486_0.7198859333916583","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313153312.6f28f9a":{"name":"remoteclaw","version":"0.1.0-next.20260313153312.6f28f9a","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313153312.6f28f9a","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"b487ccfc49bbb0a88c444303bc2141324b7e006a","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313153312.6f28f9a.tgz","fileCount":2139,"integrity":"sha512-vDobWg3Fra+uxlZbEzaHpHrqvSN014yAeSbXwXGt8Or6E1Z99ZCQxjO3afA6KuypXcj1qicrA7q+6XNfXc173A==","signatures":[{"sig":"MEUCIFKY/Xf2RY8NY+eVsDnDFVq7VxLd6eJ8jsTtpDqis9NBAiEAjXHq8b2g08Qiepp3NComapQm0i3zOBeNgQ3zO4jFJiw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313153312.6f28f9a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23062628},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"6f28f9ad050e5917e34bc8f9631caebd889be6a8","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313153312.6f28f9a_1773416023114_0.7516606876872338","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313154215.67842c0":{"name":"remoteclaw","version":"0.1.0-next.20260313154215.67842c0","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313154215.67842c0","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"21a6799b247f2217bc0d4f5de72551b24d6ead9c","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313154215.67842c0.tgz","fileCount":2139,"integrity":"sha512-Dt+GtwXK0KF6CSz6ZNRbu9xoYutLYh3NWrLCyhomQPRDaZmEbrn+cXPpVF4UeruzE28cP0GDwDb/PUm9CPgMFA==","signatures":[{"sig":"MEYCIQCfavmXw+he4WwUBmZ2FHUYIotmCA4yZTYG3ApICypYngIhAO1ZTkZOt7JFDfSubLaCANoO7zfQAIa8mwhIz7ZgAlCF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313154215.67842c0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23062624},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"67842c098130fd78f428c119678418ebc506a096","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313154215.67842c0_1773416564176_0.045399800068798735","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313155148.1bc2c5d":{"name":"remoteclaw","version":"0.1.0-next.20260313155148.1bc2c5d","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313155148.1bc2c5d","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"b77a3bd45f1f10c0ac658b02950f3524a01096b1","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313155148.1bc2c5d.tgz","fileCount":2139,"integrity":"sha512-f+pzBHfCjrHnx7O895+SJJHAUPLZ2B+AucE20Ysu3J1wQjr2MfjDROY6pPzcpVghY65Rgjiyj0lZnXLtw+3tdw==","signatures":[{"sig":"MEQCICtmt45RdryR5jfEH1fjwiWsIijjp6ckvXx5Z7/RpBF6AiBvigLBENlpO+E2Ztj81pPQXBIlmPKFbnawaDMiVYsrYg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313155148.1bc2c5d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23062624},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"1bc2c5d5b8ccd3598f01b93e0a5654692dfad6d2","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313155148.1bc2c5d_1773417138782_0.8423341082197462","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313160153.647930e":{"name":"remoteclaw","version":"0.1.0-next.20260313160153.647930e","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313160153.647930e","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f64b1cdba33eacef78c0ca7e8d8ebe1485247d1e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313160153.647930e.tgz","fileCount":2139,"integrity":"sha512-jAbv5wwH7HjgYr4BRIuS7QQ2vipDp5VdDZMJ9Nd6yjqsjArNXg3szDV+G5nt6xoOzHCJOSLdGMTt2/hI1fL69Q==","signatures":[{"sig":"MEYCIQCG3vPTZN1kdA0UsczXvkrwSXoJoCinZJDyLkq1c69R3gIhAJ1yee+JpTlnXZHTmntHITgkyM2byhFfmM8HGAmCIirh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313160153.647930e","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23062624},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"647930e21f54ea9f9283219a718a05370e9e15be","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313160153.647930e_1773417739694_0.25138518442729785","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313161330.fc7e79b":{"name":"remoteclaw","version":"0.1.0-next.20260313161330.fc7e79b","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313161330.fc7e79b","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d511ad09adf7b3cbd02657b9ac120e9397bb4791","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313161330.fc7e79b.tgz","fileCount":2139,"integrity":"sha512-zx8nJWQ2PY26TLS9+BMfu3xMA1BJNnJh+T0mYOSBlwiHDFB+/7n1Uiva1JP9xj+0oi4gSZC5bq0/P2ckgR+BGA==","signatures":[{"sig":"MEQCIGnxh36srxcl39uebU1flVxOW4JhXwPbJjN3vnnWhWWqAiB2mgprwK0VwZxG80VnwjFRL0n129yXK8T+8841ZcFfmQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313161330.fc7e79b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23062628},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"fc7e79b903fcb4d8bceba231883daac20e887f58","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313161330.fc7e79b_1773418440395_0.03090770492011785","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313162447.a80d58b":{"name":"remoteclaw","version":"0.1.0-next.20260313162447.a80d58b","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313162447.a80d58b","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f2f4d12e774bcd74d3c82f0e5982f7b9333835c1","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313162447.a80d58b.tgz","fileCount":2139,"integrity":"sha512-S4HZ9/dCcd5XMRYn+0pcQ7lvFMUm5QM7MYWVAd1OIJ1pbYP46Sw7CSSuaBccJFBdEqQ3MdUlgnDVMfM5Cb7ZNA==","signatures":[{"sig":"MEQCIDguNd9RO2wkie2HNBr8TeZSb0MPMVZDM2DUQVFTqZ1qAiBm3uFE8SntPVzd7l7NDTnSp3q0Zp2h7GDwZJDN/lvKwQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313162447.a80d58b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23065118},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"a80d58b75a27ee754ca0829e0a74964392a6b76b","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313162447.a80d58b_1773419114995_0.8343755045084031","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313163705.2b52caa":{"name":"remoteclaw","version":"0.1.0-next.20260313163705.2b52caa","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313163705.2b52caa","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"b691f33f77d762104559d86f1dd8c53ce693a296","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313163705.2b52caa.tgz","fileCount":2139,"integrity":"sha512-qMfOmRRmNqoIwQQO8ekwqQTSbbu5Xw6eSYPDkpxOcGmDFOgNkYWBLliHxqSxRp1iyPi1fERmzHosBdOzzBlsnA==","signatures":[{"sig":"MEYCIQDsFAoCBBRQvvAjS6nB+6+8MJPcdZnJPoO/nIamPUyf7QIhAKOvOP5Mr49jvV8RTupgrPqEJO4m+XrAG1zVgApl/uDw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313163705.2b52caa","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23062626},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"2b52caa97845f40c601334b96c21a051fd81b096","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313163705.2b52caa_1773419854333_0.3509270923033685","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313164637.19b94d3":{"name":"remoteclaw","version":"0.1.0-next.20260313164637.19b94d3","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313164637.19b94d3","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"fe752264a9b97def808e7a3edc68f62d98d0dbbf","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313164637.19b94d3.tgz","fileCount":2139,"integrity":"sha512-WMbATt6kaV0EeDGhKHrkQK3eb5mDw9jNF+WAYrIk2fTvjrwtx43drlTz/OmMoa29aRFYkT0AjTps11acppuG7w==","signatures":[{"sig":"MEQCIGDk/f53DdJoDL7GH4HgBp2RtFmf/97opN4iPqOH8+yfAiB62+2nUMYMqWiIynYw5Ffn37cNk42MNZvuFd5S5PoGCg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313164637.19b94d3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23062724},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"19b94d30cc2e4c5a231ca3454e69c9888008ad32","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313164637.19b94d3_1773420426104_0.6078376675944308","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313165603.170ff37":{"name":"remoteclaw","version":"0.1.0-next.20260313165603.170ff37","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313165603.170ff37","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"4a5215a2779f2627c74196b0148a5f6239527941","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313165603.170ff37.tgz","fileCount":2139,"integrity":"sha512-l5byMC8Pv6Ysh5A//fucHq0JNTzkw0oNyLesajbrblGirycJJb0yvG62g/C2WAY5dz/3acIVxhTVlgu0+4gVCA==","signatures":[{"sig":"MEUCIQDromBvbXDWAQEGP1QDAvLkiSu0JfBc/TeAIuQEY0glYAIgJzaVHiU6uBte5ONduBV/YQqF1U+HilWRvaVXhNE3QOs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313165603.170ff37","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23063736},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"170ff3708db8a59e29214d33f05895f9f94c6d43","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313165603.170ff37_1773420991999_0.623798325277857","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313171424.f79a60c":{"name":"remoteclaw","version":"0.1.0-next.20260313171424.f79a60c","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313171424.f79a60c","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"30cab54e16af8ce084869702b61a17331016361f","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313171424.f79a60c.tgz","fileCount":2139,"integrity":"sha512-edZF2FKi1e1n7VNtqfSu4ypIMCT5aE1xlHK6TLbBYDm26Fr1K5wJJO/fIz1rO67SJ7wqSFmQLPtiQnILAw4YGg==","signatures":[{"sig":"MEUCIQD8NT5Y/eYyU8PJy4SXp7EWUcmDtapKX5++nSg/bj06NQIgXxz4b5hdOFslMaDynPt922/vGZIjY75dQuXtlknQLdM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313171424.f79a60c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23063846},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"f79a60c95a18f3e00ef86b108c34120f5706f68b","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313171424.f79a60c_1773422093960_0.7073522321074626","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313172525.f9ffc0a":{"name":"remoteclaw","version":"0.1.0-next.20260313172525.f9ffc0a","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313172525.f9ffc0a","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"99cebe3fdb504d96e4c4bda771adcd9f51484979","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313172525.f9ffc0a.tgz","fileCount":2139,"integrity":"sha512-rPIvkeamwxQ5jVFY2o3LG6Crut9XjI71aC3ZIY/6ZZYVHoiAaZkLwGTXv5MgvzkdwnbvdrbLgGkdjPAR3GidaQ==","signatures":[{"sig":"MEYCIQCBAgHbv61QVTtgaeZvNNnxzLABvh0Jj6Plk/2LTjs74wIhAKcHYnw7YXvF/dt74XehmtOMTgZLDdkseU6Xt5Y0/yev","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313172525.f9ffc0a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23063846},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"f9ffc0a9b379f7955ec4b95c2d60ba7c6e8d28a2","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313172525.f9ffc0a_1773422754767_0.11642439385311532","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313173609.802e432":{"name":"remoteclaw","version":"0.1.0-next.20260313173609.802e432","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313173609.802e432","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"4aa47672341a8d9b98b90a7a3bb51cb6b8c2ce2f","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313173609.802e432.tgz","fileCount":2139,"integrity":"sha512-JGNabEdUvbYMCXkXg6ckWJASyBAaJ8jtmqU7s6xyxPs1cQ5LqThQLZHhJIzFupthPVHVvfzCTlYB8SbeQI27mw==","signatures":[{"sig":"MEUCIQCfGIOe3PLspapHf7rN4Lrx+AfTEDqdwOrPnaUExeVpmgIgd8T7lhNW/dfu88EYkEYS0IoFJRGq+My0lQYvn3KH0mM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313173609.802e432","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23064269},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"802e432b5a62f4414e8c5575d3b3fd60f6332a99","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313173609.802e432_1773423398610_0.054286639038428675","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313175157.f5b5823":{"name":"remoteclaw","version":"0.1.0-next.20260313175157.f5b5823","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313175157.f5b5823","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"6ef9adeb78a191dd18fccaea8ab781eac7c20200","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313175157.f5b5823.tgz","fileCount":2143,"integrity":"sha512-oP4gsN15aZEb3LgvaSScDsriJCo5S5SKorzuFjFK7RQELy9TkRPFqkHwTOwx3GgwLasJfwQpv+rOa5fb8JAuow==","signatures":[{"sig":"MEUCICllv5G7YAPncyeofyOA5x+N2skDolUK/JmiIcMxLgRPAiEAuoVXLTAbW0KboBg6BGP6ihHM7SdfQPODF7b1Zdg303Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313175157.f5b5823","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23073664},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"f5b582312f9bba25b49897dda244d0ff3b9fb3aa","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313175157.f5b5823_1773424347502_0.23851671627354754","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313180310.82ff3fd":{"name":"remoteclaw","version":"0.1.0-next.20260313180310.82ff3fd","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313180310.82ff3fd","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"8389515a4c665e326758f8e7c2cc1a7dc62c66fc","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313180310.82ff3fd.tgz","fileCount":2143,"integrity":"sha512-AvD42BsNPj25AymcDx+QsUTK0gw1kw2/fA33cmlY1FSmTDqHDxSAph44mX+WB9A4o5fl21zZvBt7F+oZ0vvwHw==","signatures":[{"sig":"MEYCIQD67GVkYgB87f4KdeSgFOZnnWULDiye/xyakMsW74qb8wIhAPpxrpZXsoAKVKzBOE/EBVzVk64D7PWTt7aQ+Ip60zdx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313180310.82ff3fd","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23105672},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"82ff3fdf8ead01a645038498c0ab4d9d135ec352","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313180310.82ff3fd_1773425020330_0.3972987680344904","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313181417.1b0ca0c":{"name":"remoteclaw","version":"0.1.0-next.20260313181417.1b0ca0c","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313181417.1b0ca0c","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"c5597940152a6547f33fc28046916140b15f1921","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313181417.1b0ca0c.tgz","fileCount":2143,"integrity":"sha512-gFhmMULToD6DkFGm/XVP/F4bKtob+i0YaVPicgBoMh3vwa3ATCz2QkV/KluHIxOEjWs1qHw3qcYyZdImMozmHg==","signatures":[{"sig":"MEUCIBNABcYKKkRom/sxUuOhXPELoIpsQI8oMUl/p4Ot9mbqAiEAlEdR39q4IEvAZA9yirYBgunCRT4eZjEIfqp0TZu3J3Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313181417.1b0ca0c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23095336},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"1b0ca0c3ff434a24eb67f490a80d9573c97e84f3","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313181417.1b0ca0c_1773425688548_0.5809729333793194","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313182355.43d84a7":{"name":"remoteclaw","version":"0.1.0-next.20260313182355.43d84a7","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313182355.43d84a7","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"3b31f4ea1e2ddc151ca8fa76933b7981686af6fc","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313182355.43d84a7.tgz","fileCount":2143,"integrity":"sha512-5DDT4Aw01A3UcL5vT3YSNiF8eU4bzDQXVcUvwh5IcCqyROsxpdf70/NTH7dwGbYxV/PRUy5TLviYpXgO7miZkA==","signatures":[{"sig":"MEUCIFnGARn8UWST3ulgZ41dd4V6PydTHpcTrc2bqixUYz/SAiEAnPMEqjf8DpdvsYLf9ka1mntZatWzMlc5WQWKLbs/XPU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313182355.43d84a7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23139149},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"43d84a7033a8aef4e13c189e6f81647641d5b9bf","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313182355.43d84a7_1773426265174_0.36841883920113894","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313183621.cd59693":{"name":"remoteclaw","version":"0.1.0-next.20260313183621.cd59693","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313183621.cd59693","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f90a49c1c18a1d4a0edccb3ea5e3c9b3e8935981","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313183621.cd59693.tgz","fileCount":2141,"integrity":"sha512-gjdi7FCE8bCD7Mpe46XTtwbKR5op5B8F/tZi8tmWmeRoUoiiVHweEO8zCIDlfhQcfjDYvgAsguo/AjZ7HwQDOg==","signatures":[{"sig":"MEYCIQD9utQH1HxqsAZDIMM4+e5arsFXD+T5dJZP47FtPE6+AQIhAKv+Sl/f6f1W6lHV7p9sdq99MMtmsANs1qm9HBW1ggi9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313183621.cd59693","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23149383},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"cd596939505a2ac3338e7f5d17fc7af43952695e","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313183621.cd59693_1773427010880_0.673852726195957","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313184643.dedecaa":{"name":"remoteclaw","version":"0.1.0-next.20260313184643.dedecaa","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313184643.dedecaa","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"fe632cf91311e85a716ec94d92b6ca370a15d3aa","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313184643.dedecaa.tgz","fileCount":2141,"integrity":"sha512-QKTbh4FsffoKYJw5I8PRx8iMFm0nfr3G1cJJeOA91Xnwm/kMO+/vjBJuNyjxzVezGxC0m5FyUK/GrC487p4zgA==","signatures":[{"sig":"MEUCIQDTT7sQ0EphmpmKba6fnVIPIycBPuQJTniJIcE3Z4NhJAIgfKgL2ZdMgvYZN1d6sg5BQGDEaCJozQRGuw60zSuAJIU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313184643.dedecaa","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23151791},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"dedecaa596830db5d5a53c5cebf3f026b31976f9","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313184643.dedecaa_1773427632250_0.4510671148016645","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313185628.6ad69a2":{"name":"remoteclaw","version":"0.1.0-next.20260313185628.6ad69a2","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313185628.6ad69a2","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"183cc34f6cbd0e678a0b6828eb11c078e304da68","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313185628.6ad69a2.tgz","fileCount":2141,"integrity":"sha512-Nq5EtZ/OaeNfmeMgX8YjJDqW6iz3mDy8LHVEKRNTvUT+2c4Zd+CW2An4ZU8hhEEuK6IqtmN7Mwr2TnngYU6lZw==","signatures":[{"sig":"MEQCIGAq9jZDcaeLrfUL5uq+PSltMILcG0PV5MJ0/TkZGR3wAiBZnMQjIcpTaCjg/bFryH1eGrYHYT43rIC3/bbXHX9qAg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313185628.6ad69a2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23149370},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"6ad69a243599805bc97bfc5f3a1b0f2a90b79104","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313185628.6ad69a2_1773428217554_0.2369139345297544","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313190605.a600732":{"name":"remoteclaw","version":"0.1.0-next.20260313190605.a600732","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313190605.a600732","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"2bc9dde019cbea6261515db1ddc10d4454bc10a4","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313190605.a600732.tgz","fileCount":2141,"integrity":"sha512-pRiGD3WeuA8yffHanmYz89iiM74cZ4BN1LT4Cgrt5QgPSJCDTW4jN6QGjbsE3JGsNiITqEsQVxCFWvN2IDZKwA==","signatures":[{"sig":"MEYCIQCNa2dspYJHhalzAVyZmpiZnKM+UfsrnNzx9aY6opra+wIhAK7ebuD2LulTcHWBsVKtIfja/asGex4VoFC3wovoycW7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313190605.a600732","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23152493},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"a6007328fc509472ca77d1ad1ec2a4037736b63f","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313190605.a600732_1773428795284_0.39953650343812064","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313191747.3d0284f":{"name":"remoteclaw","version":"0.1.0-next.20260313191747.3d0284f","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313191747.3d0284f","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"db15c4f98f96ec318939a79bd4cef60fa3c98ad0","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313191747.3d0284f.tgz","fileCount":2141,"integrity":"sha512-5eNtBRglNRfIhUtAvZiYaPd3i9GFwl9Au5MR30CbHTypSb675JVaEhJS2uM/h8dZYCCID+TzZhWNswGCw2EYcg==","signatures":[{"sig":"MEUCIQCNKkCzhJdt2sWpqIn6k2FfVCMw3DGiQrfbMg0fEdG5EgIgFbHZV/31TCww4zc0NAr6cqA4OjZmKnEoOrYMfOc+7zE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313191747.3d0284f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23152751},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"3d0284fac0aef18faa1df03952dcb44a8b778ce1","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313191747.3d0284f_1773429495941_0.8914081528813671","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313193633.7a9bad6":{"name":"remoteclaw","version":"0.1.0-next.20260313193633.7a9bad6","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313193633.7a9bad6","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"1036058f7100a6eb77dab9161676208a849c836a","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313193633.7a9bad6.tgz","fileCount":2141,"integrity":"sha512-hqnMwk7Rq10kdrcRotKPDwEuaUhQbLDjywhtFTgn+Dq5MqBugu7OpemNXFxytgD6jViTO7JzlHBKgUTVE65E7g==","signatures":[{"sig":"MEUCIQChlaxaLZy9ZHj+tB27qJFxTxA0A9y14ZGTLjyLLKGJVwIgZWu4yB/ry2olBe2ce08BHZUCJVNjf64vQXTaHj3sFDQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313193633.7a9bad6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23152751},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"7a9bad6825ea8860b0c07d6048e5798b605bff5a","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313193633.7a9bad6_1773430623711_0.383333949341768","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313194735.d58a9a6":{"name":"remoteclaw","version":"0.1.0-next.20260313194735.d58a9a6","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313194735.d58a9a6","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"dc71f8b60047edb6373dc8ed64278f5d79ae126f","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313194735.d58a9a6.tgz","fileCount":2141,"integrity":"sha512-f4BoB/WJOob5+uTRJcLrIhcQA3H3bkr0LHvqMr76nHNkQYwjNd4MjZ9tTkBfSt/OUPB/wR3ocYM/7esAIU7zJw==","signatures":[{"sig":"MEQCICwh4KAO7LwM3wxC8a1QdPX2ciV6YFPPOgWlBOQ/a4b2AiBRb2JEFqo20B1s7LNDSjPL7TzhZB58waZIPygxjM9TkA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313194735.d58a9a6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23153286},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"d58a9a6962e516d76214ea37421edaa36946ea74","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313194735.d58a9a6_1773431284393_0.4437389702759793","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313195731.ce52c79":{"name":"remoteclaw","version":"0.1.0-next.20260313195731.ce52c79","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313195731.ce52c79","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"42901182c8d40e1b85a3d90772a87e57f64aeedc","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313195731.ce52c79.tgz","fileCount":2141,"integrity":"sha512-ocTfIRVIJ/9jPEKHra4GQEnj1fex4Thiy235IoroxGsm5dhQsv0iGKF4yxElcr4MRPqMYXNRjCH/honCKteKCA==","signatures":[{"sig":"MEUCIEDzMW5cD065o6d5alk2K901C02XFeA/XdeYrQHwePplAiEA47jK7GR+HRh/oE5m3o0YeXqm+2JqlreGWYEsfEWskTs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313195731.ce52c79","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23153294},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"ce52c79c33baa764f3ea83dc4d2cd7b1016baabc","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313195731.ce52c79_1773431880743_0.6712009527909963","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313200932.20f89ce":{"name":"remoteclaw","version":"0.1.0-next.20260313200932.20f89ce","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313200932.20f89ce","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"9c052655673d59688099cdb76cc6cacae67dd92c","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313200932.20f89ce.tgz","fileCount":2141,"integrity":"sha512-y56IC98jh51vCZDHfwxOARrGkACvTZLzCxicHJe+S3nlRrqsnrBQZpYuR+PG8TIk4Wd0WDWhtFjN1zgHOQwuUw==","signatures":[{"sig":"MEUCIQDy4XRFE3ouS6ikJaNDvhnl/xEBg8sfhD7kdIMew6k/fAIgd5+nvEwC2EnY+p5wz9VHmPrHXp+Yiwk43p8KXexIGYU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313200932.20f89ce","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23153306},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"20f89ce7a35e8fa07a6a3ad84630254d6036994e","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313200932.20f89ce_1773432602880_0.37401548927583383","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313201902.fc3fb8c":{"name":"remoteclaw","version":"0.1.0-next.20260313201902.fc3fb8c","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313201902.fc3fb8c","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f84e5fb29883c95f9ebf346d3547d88f925102ba","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313201902.fc3fb8c.tgz","fileCount":2142,"integrity":"sha512-D8HqiwALzQrNOJ7s43gjc8AX3gi1/YnSzWa4pok3659BZ+0z4Xr7NaMPlHTsirKcn3dn/WUeLZp4a5RAv1EwUA==","signatures":[{"sig":"MEUCIQDQsIIxGYhhw9+ts3BLEJIosxPU+wum6k1JxLEY8G1PrwIgRGft8ZWlCHH2FYBNqYJ8oSEpxq155iSijgHw2c61AL4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313201902.fc3fb8c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23154046},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"fc3fb8c9b6fb7f2611457242f1b747b0862523ab","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313201902.fc3fb8c_1773433172208_0.6447871479117446","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313202841.3d78fa3":{"name":"remoteclaw","version":"0.1.0-next.20260313202841.3d78fa3","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313202841.3d78fa3","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"1e6d578deedad5f4895fd192f439ee186a44e3e9","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313202841.3d78fa3.tgz","fileCount":2143,"integrity":"sha512-wNl/g18P64A1a7c9gEL2zC9FxPpUZKn0k782R6VZZmYZdAVgVAJOCUwwlCv9qA/E6mgYtMwXiNRhsFDW6zZAXQ==","signatures":[{"sig":"MEYCIQDfhTWzqeHwGH0CeTiFDxMqV8UZQnYHe2haRTzbbsbzmgIhAIb9FBSn0fis1Q9YJZKqoEkh66He8LdQ2n3TPr8kCVf5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313202841.3d78fa3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23161399},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"3d78fa3235a118e5cd05eac43f3f3a4d3a472e99","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313202841.3d78fa3_1773433750538_0.04772915438787595","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313203751.f176359":{"name":"remoteclaw","version":"0.1.0-next.20260313203751.f176359","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313203751.f176359","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"96a8922ca687550a29a522b7669cc8770d26aeac","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313203751.f176359.tgz","fileCount":2143,"integrity":"sha512-Eu95QzTMrJa1NK9XqYVgZ+5g8AouYXYt62Sm2oy5FWGJ+L90zIB896En1nCQuvfvg7hhTut0NNv9UMjiqLSPyg==","signatures":[{"sig":"MEYCIQDiEb36nPH/yPPygB7DjPNlflpgv2CCkusP+CZKuQpdXQIhAOSbwCHY4jmo8V9tnr/XoQanKTz1HQaSFETrIOFyO1L7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313203751.f176359","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23162139},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"f1763599485c9376c2a4ae60176d87f559bd8c7b","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313203751.f176359_1773434300281_0.9802142884557141","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313204831.ea7df97":{"name":"remoteclaw","version":"0.1.0-next.20260313204831.ea7df97","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313204831.ea7df97","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"2929a762e8b15b4aead595a7951bddedf7308e0e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313204831.ea7df97.tgz","fileCount":2143,"integrity":"sha512-/nlPcwucYQptXkLTw62m0SCcLJRQJkOoqPq4ULLRLtdS30PZlAzlxvocl8rIxMCd54/GDnN4gSPhNALcUJzeJg==","signatures":[{"sig":"MEUCIE8J/Ih/yHa05HqpVht7IeKZ8aOEL8v9z+iB2lwI7hAVAiEAyBXpC4OjBOpIEDki2UcYj7Xu7l8hCMA1FwcKPzF+3AY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313204831.ea7df97","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23162346},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"ea7df97918a063877b84844c9b5ada8a695a0930","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313204831.ea7df97_1773434939552_0.9962812655800011","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313205757.522e3c6":{"name":"remoteclaw","version":"0.1.0-next.20260313205757.522e3c6","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313205757.522e3c6","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"812b685976f6afb2e70e575018d025a0443bfe85","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313205757.522e3c6.tgz","fileCount":2143,"integrity":"sha512-+S3tQa0O5+uoVpbARkjfODsYebhtZX6RcUEanFQY/f9B5ruV1Ru89QKRqA1r0OSb82fa0hvCOwqt49z6mDXB7g==","signatures":[{"sig":"MEQCIBS2PdEbOIuhCnmVpCkJFUNlu0dOTPv0Nxn7W5l+pkgOAiBjj3Ouu2OhRBk8p0eHfteZS07tntt1p0XDIn1Wvf6/Tw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313205757.522e3c6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23168256},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"522e3c666982bcd87d8262343b1dc9d7af8970f5","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313205757.522e3c6_1773435506967_0.9975144106026865","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313211430.67652c6":{"name":"remoteclaw","version":"0.1.0-next.20260313211430.67652c6","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313211430.67652c6","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"28e0e3df4e7b6185c2e5a0f9daefae1e738bfce1","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313211430.67652c6.tgz","fileCount":2143,"integrity":"sha512-TaCU2HWex4nDPvVK3A3nifMKHYBGwxMbW6AMbKasTkQg+psy4jOjToWU6Ed4K3hCUJsswPGLNNaiYH/EI7BJqA==","signatures":[{"sig":"MEQCIAFAncEYodeDPQLOKdtf2kJb/90Ln9jMLtTnK1Yh2Uz3AiArl3epdl4ONa1ugajAj8w8Ll5fEYkuggdYjlD3MVGJOQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313211430.67652c6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23168444},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"67652c670db852b23b0823fa96804157316b7a65","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313211430.67652c6_1773436501347_0.7437322767599279","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313212354.900151f":{"name":"remoteclaw","version":"0.1.0-next.20260313212354.900151f","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313212354.900151f","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"ee8a3beb1363ed8b2081c94a55cc295af2b5dd68","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313212354.900151f.tgz","fileCount":2143,"integrity":"sha512-zWCO1YNCCuUyDzjcwFPe726znnPV2qfknrnHpZkbOO0TYwdpkiivXRP0e6GPm+u62kyoemtZGMovNqjMucPTPw==","signatures":[{"sig":"MEUCICfPvQahvN9sYiKAAQaHLU58EMqb4ZUxea8SgTj60SSyAiEAuzWmUYhT30ax/+HR6CVimf3euAjEsqkBuf1coGUKIDA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313212354.900151f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23168550},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"900151f7403031d9368979fc03e7aeb6380bcc0b","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313212354.900151f_1773437063278_0.5620056605635877","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313213904.e8bcc1c":{"name":"remoteclaw","version":"0.1.0-next.20260313213904.e8bcc1c","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313213904.e8bcc1c","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"bb7e67dd621683343a51ccab4443f2ffc8fca3ce","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313213904.e8bcc1c.tgz","fileCount":2143,"integrity":"sha512-8fmzPS6jUXLA11dnfWzveLll4ML4Ipl4Lcm+v9emPpZvu7acnJXY/G+pgD/7YPrHIQiJoo/SljatY1EiS0J6XA==","signatures":[{"sig":"MEUCIQDjyjMpofJk3sN6GEjrN3UJRFMtWegUA6qHPaSakqQA+wIgVXyQKXWpCgN2KzcB9bLG7eSLk4Bqx6cQrE2oEoqnM+w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313213904.e8bcc1c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23168550},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"e8bcc1c727a95c97bd7753a860c6a107f5f92677","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313213904.e8bcc1c_1773437974444_0.08152991698816758","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313214800.67f754a":{"name":"remoteclaw","version":"0.1.0-next.20260313214800.67f754a","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313214800.67f754a","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"50acd5735a16b3779ec3be982c9d271c67f47bb6","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313214800.67f754a.tgz","fileCount":2143,"integrity":"sha512-vRMhuQwkpH/7KAicvypPFQxNvaQFnBu2zVU1pZsp7Ls74x8ANJg2p+PecAVkEXXYpc3Nf3ZjmShjOuhFBLABlw==","signatures":[{"sig":"MEUCIAqoYk0ZbbA72YMsQUKc5cjbCh+ZMvjsYVHX9JVKYPIcAiEA2RYdKqLy6wjSlV70DyDsziWbaAUEK6vGiIcKA9v8dwQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313214800.67f754a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23168550},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"67f754af231899664be908c449e960ad14d87fd5","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313214800.67f754a_1773438510222_0.8798953746260487","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313215752.1d3bc39":{"name":"remoteclaw","version":"0.1.0-next.20260313215752.1d3bc39","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313215752.1d3bc39","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e4b2a108a1af14641a84b81f4f5292b4678507c9","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313215752.1d3bc39.tgz","fileCount":2143,"integrity":"sha512-UBilEbutmjMuB0JciDlITiQqdvgnFLl0X7nTwisIrq3MVqPQgIUPe9JOxgqxPSj20yQqrpu/77ms6JvagDYBBg==","signatures":[{"sig":"MEYCIQDlt2hln7ukiF2TvtwOtodKQy8dJo4l9pNi54Ji2GTJfAIhAJr2aHlJguv6WAgQpMtKIUIZ6WvbjvkbQKAsEAq3sJtU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313215752.1d3bc39","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23168552},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"1d3bc3993abf2c3f48ffe7f6203e807b3b4b890b","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313215752.1d3bc39_1773439101642_0.8307192723001149","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313221545.98c333c":{"name":"remoteclaw","version":"0.1.0-next.20260313221545.98c333c","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313221545.98c333c","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e380fc6dfb16a9179efaf9c1b989491513ec7e83","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313221545.98c333c.tgz","fileCount":2143,"integrity":"sha512-O4u7J179ADOH68bZ2JlzaWLfJSGLDxxf58SkJNpTKqJtdk8F4nE0Tf+yuMw45M6QdzMUUe5z4uHxBuAj6uuKMA==","signatures":[{"sig":"MEUCIQDW6QtCVBR6cKaHTjcD21ZxtWEixbgnZ70H7aF0U8LTtgIgbqdGfcRPBpCxmy7t0E0O7nXFhqoDcndF9HTNvXVo/jk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313221545.98c333c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23168554},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"98c333cdd5a6450e913847cf8c19b450febace95","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313221545.98c333c_1773440174651_0.7635172736071167","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313222621.41d9ff6":{"name":"remoteclaw","version":"0.1.0-next.20260313222621.41d9ff6","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313222621.41d9ff6","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"c1f894961ad11b8945739c2ae71a3ed7232f6646","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313222621.41d9ff6.tgz","fileCount":2143,"integrity":"sha512-I2iGK+7PAt5xiefkshtWgvANHBMfMeu5Id9wxx5hQDIjoROqt1fyDWgDVf3X1Px9P7q5wGXUEiKm7YCKZP7+HQ==","signatures":[{"sig":"MEYCIQDwuDOYFWbN5+zQK6h0I3qgyI7MmxCOeMbBoRwYE7E0CQIhAIp0uEAxBQlIwervYNGqFMOS1Dwx5U6FR1UciNPdVdFV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313222621.41d9ff6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23168554},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"41d9ff66686dee0a1f3aaab01d991769dcbfccc5","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313222621.41d9ff6_1773440810059_0.6372250508548989","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313223740.929290b":{"name":"remoteclaw","version":"0.1.0-next.20260313223740.929290b","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313223740.929290b","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"23a006418cd6f9cad2b96d17b98ff7083bda02e5","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313223740.929290b.tgz","fileCount":2143,"integrity":"sha512-P8ubu7G55ye5ZYEXcKjw7mbY+sgn6igbvhJStRNC/qJ8b2H/CLeZFqatKYiyStWJAl5+K65193/moeLdwI+/hw==","signatures":[{"sig":"MEYCIQCcyID3DHzokzrgfNHTt4Bqrio2+/KST1SU2W2MEJA/WgIhAPtHc29gWXDdlgeKOClp2msYr65Oz2rGrn4AxSfsz71O","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313223740.929290b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23168550},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"929290b98bdfeb91f79304591bb9fa9208683e79","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313223740.929290b_1773441488852_0.8554347173538757","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313224906.b90af17":{"name":"remoteclaw","version":"0.1.0-next.20260313224906.b90af17","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313224906.b90af17","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"44ca781bb0b04ba5aabf42f7044035e98fc147f3","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313224906.b90af17.tgz","fileCount":2143,"integrity":"sha512-d9bhRKcvSKPN9tZ4C3xpgfkja+gDF+ut2/g4hrUO13Oz1k2ayX6vIMcTdzQaNxvr3MN0ejMiD5adkjTjTQ3osw==","signatures":[{"sig":"MEUCIQDZm3/ovg9LUWNuOAwPEq490R1cooGaaAgKik4r9TZgHwIgeYx+uM990PC/EpY5z0UJsMavy40rePnm8iAyGumerh0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313224906.b90af17","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23168334},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"b90af174b89c0e779f44718b977b0b4b4b07193c","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313224906.b90af17_1773442174957_0.779985214169371","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313225840.50e78ab":{"name":"remoteclaw","version":"0.1.0-next.20260313225840.50e78ab","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313225840.50e78ab","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"9f40ac357632fe484b35f1f4aea5be458e703970","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313225840.50e78ab.tgz","fileCount":2143,"integrity":"sha512-ARjpx7AFZNcRLjEJf8VzhNNcKUSKDGOcpA5SguO8Ksb6fPiOi3n3KpRAfAErb9bvhq39RGYiXPCrLzNF51Cw6Q==","signatures":[{"sig":"MEYCIQDtbANatrWuPm7YdL+v9HDXJxJHWSu0RsC/GPvUKG/ZZgIhAIKsqmUWoOinRKdIP/RwfrY1m/1DLBWfM58Z4GDB8Wh6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313225840.50e78ab","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23170983},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"50e78ab04076558752d551cb2fabdfea000aab4a","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313225840.50e78ab_1773442762585_0.8440097409975433","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313230945.d0ab53f":{"name":"remoteclaw","version":"0.1.0-next.20260313230945.d0ab53f","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313230945.d0ab53f","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"7329830f1e53428bd12cd402d8c2e3bde2842f40","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313230945.d0ab53f.tgz","fileCount":2143,"integrity":"sha512-rjk7k0RXDZtI9BUV3caagMwRHWheWi8YJtXkNHeJ9bshKkAK/y3or6i2u3AKb0yIYT+S5Dzj+6cAWY9hYKjMxg==","signatures":[{"sig":"MEUCIQCxBzut+MvJUjVfiIy7FDO+1f8bTIfFkmSvNaduQeJYQwIgXLIjfKzz9XnppkmkjKKqyFfOEzaufq0FZ7Jxts9yWxE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313230945.d0ab53f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23174535},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"d0ab53f16652169e09d25894249068871de32b5f","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313230945.d0ab53f_1773443421484_0.5326841316883772","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313233401.6a1c1d4":{"name":"remoteclaw","version":"0.1.0-next.20260313233401.6a1c1d4","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313233401.6a1c1d4","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"6567e201b6a4eb2492e0a56563b29ac86e0e88c5","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313233401.6a1c1d4.tgz","fileCount":2143,"integrity":"sha512-qH3dZBt3C40p5kOqBA3C2hgUgTf+5+4/KsVlRYhFh322pIJj3TUE747+a8kIyqYUO9lvgZzyJQlKY/eVyEM7hw==","signatures":[{"sig":"MEQCIFrwixo08XIquWULuDPNkK5o/qWLA3FC5+FFlJQlS+iBAiBZmO+ULql/C82Wvpl16n07gtC95fAvfSGun5rQ0BDwiQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313233401.6a1c1d4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23174554},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"6a1c1d47cdb1514f0b9ccb6418905389b5b3f7fd","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313233401.6a1c1d4_1773444870786_0.07443804360418893","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313234342.07ff431":{"name":"remoteclaw","version":"0.1.0-next.20260313234342.07ff431","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313234342.07ff431","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"b3b36ea9f45b0ac0c3f76b38c8e177271d1b5886","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313234342.07ff431.tgz","fileCount":2143,"integrity":"sha512-iVn/VxaJ4Hkt0q8wbY//tnHcFfXjUg4qQTx8iHrt7ZDeBM3ocTZ9ZCixWSPrbg+O7H8L+oaQGmOLECSeX9jriA==","signatures":[{"sig":"MEQCIFOqeXrEQWrMiaHLyVphj0krZB/sMvZUF9B9Pu01mRoiAiB8TcAm/HpP5S3JUv9NMKD8+HV/8DiMDuaXnI2G8qvU2w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313234342.07ff431","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23174596},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"07ff4316be0c0f53be7283a3bdd7a53ed5d6dcca","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313234342.07ff431_1773445451331_0.9650705231474996","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260313235538.bc3ded2":{"name":"remoteclaw","version":"0.1.0-next.20260313235538.bc3ded2","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260313235538.bc3ded2","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"0df4f7d6d60a00fc2dc05ec1e10c58e0915f2ccc","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260313235538.bc3ded2.tgz","fileCount":2143,"integrity":"sha512-9kH9+yAveFHtr7z1sx+XmjDaHtiKxOUHKuulCuETp1mH4UYfXW1gtF6N6lumnsG3oIG5Nn5dYPF75pg2bpgNSg==","signatures":[{"sig":"MEYCIQDTulOQKfQ/sHeYGBCwgzomFxDQyOhmRHAgLZyAcZvBNQIhAP3fuyHtitBk1oOQpQS6eZeB5ElmllB6bmB6Q8w54fSM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260313235538.bc3ded2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23174596},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"bc3ded2bc34bd99df366ec9f829ac75e8bf3cafd","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260313235538.bc3ded2_1773446169261_0.10361944824296332","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314002201.f57bb47":{"name":"remoteclaw","version":"0.1.0-next.20260314002201.f57bb47","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314002201.f57bb47","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"54798eef193507b679eb74d2a813ed857f800d96","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314002201.f57bb47.tgz","fileCount":2143,"integrity":"sha512-w8oev6++y5MBQMmrAs7EFzmXBCUTlw/uc6Xbbo12JJeqeenfAJlDOk294SSpSiEsSVc+wX64hhrOM+QeVcEfFg==","signatures":[{"sig":"MEYCIQC6a77fYxcaGZ2Gmotriit1LVQcfR0Z39naROlwhNSctwIhAMiAybGixxNyDfytzk+sh5dYtA7irfK6wkXn49alzBKM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314002201.f57bb47","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23174596},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"f57bb474e05cd4bca10ab056460973a58934068f","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314002201.f57bb47_1773447751933_0.9661247744625645","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314003332.acc9cca":{"name":"remoteclaw","version":"0.1.0-next.20260314003332.acc9cca","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314003332.acc9cca","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"982f27d3582683140dc57f37b40dbb8bb6eb5b46","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314003332.acc9cca.tgz","fileCount":2143,"integrity":"sha512-FuoDu0ES+I4SV0q3WmsPyhTaemrhZIBPRTFf6RzvpY8AgotFcWaa3fg9kqbBfWH3Oy22UBwC5qZF695uyX3qiw==","signatures":[{"sig":"MEUCIQC2nWGUQSyrI09GeJArKgHAvAolUEbjUtH2SrNO5adkJAIgTg8GffUzpvaagI+DMwE080g4QEL0CYcCDTqAbI2wIGE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314003332.acc9cca","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23178825},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"acc9cca16b053fb51918e90b7456f049d6a47cec","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314003332.acc9cca_1773448441434_0.44800076330470096","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314004237.c613b8f":{"name":"remoteclaw","version":"0.1.0-next.20260314004237.c613b8f","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314004237.c613b8f","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"84437793826d01b5b20c47b227d0f94bd405878d","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314004237.c613b8f.tgz","fileCount":2143,"integrity":"sha512-ge1KgkdkItbPEVK9fP4TSZBN3N34VvRbolV87s6bCx1RXyJdyJsqwx8YaLN36LKBEBd18WqAoQYuWAJfjDVVjw==","signatures":[{"sig":"MEUCIQC5/pjIwBiAvoG0K/kmnGZ1PLbBrxSIXIX0B7tYjfsdcAIgIW1OJ/DcK19n9hCoBnfcnO+uVvF1E8xd+6/RdPzIBNI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314004237.c613b8f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23178825},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"c613b8f80425d537547c40043d11df68c8bcc2f7","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314004237.c613b8f_1773448984745_0.8527780328710262","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314005727.5faabc7":{"name":"remoteclaw","version":"0.1.0-next.20260314005727.5faabc7","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314005727.5faabc7","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"b05219dffcf0ead10e7cf563186bf04b6f48937c","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314005727.5faabc7.tgz","fileCount":2143,"integrity":"sha512-FAiuc570BotymguIz8osMBBqdwpxW7z1OJzDVMS5Jur2mELktkBczHcEemscKBROTat05ntIAoi/kzD5G/ygIg==","signatures":[{"sig":"MEQCIG4Sm82MR3LV9iUczmMYh0E0h0vuXu571cW+hv24R248AiBD/xYhQ8b5p0enJkzM/k3IEnVoclPxPuEdiw8voydu7Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314005727.5faabc7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23178825},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"5faabc7e48a3a82b10a19c2c04a8036bc712c47f","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314005727.5faabc7_1773449874458_0.2454338641602829","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314012439.ff771f6":{"name":"remoteclaw","version":"0.1.0-next.20260314012439.ff771f6","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314012439.ff771f6","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"20a380711026b5cc5b7fd8834403c15304f6edaa","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314012439.ff771f6.tgz","fileCount":2143,"integrity":"sha512-0ESsI6+j2VC/Hs7Rb4H7JfnhiQapuZPrxIIoCxfY/Z9bf9JzGmEB306GnHf72TZOSFAqUsBvWQB7vVdQcoTfjA==","signatures":[{"sig":"MEUCIBpCR+bkLgLU36bkiFbQwnyPx9rXW+GmDK8Z05NPot4bAiEAlWifO8iS+mTGW0WMobTBwdAGambSqdLnuVbiZaoSmcE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314012439.ff771f6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23178821},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"ff771f68fd0a09a5c589074dc2ee2b9af6e2f987","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314012439.ff771f6_1773451508642_0.9839271230463866","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314013548.5bbd5b7":{"name":"remoteclaw","version":"0.1.0-next.20260314013548.5bbd5b7","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314013548.5bbd5b7","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"2f55b875b45347b8aa1f180805722dbc14bcb9a2","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314013548.5bbd5b7.tgz","fileCount":2143,"integrity":"sha512-j8MNPXIG1VPSwUB5RQs2V1yTSlMxoHLaHRUs0INws/D5CqcvgSB7nmT7z0C0BJoz3ecBXz3ySNBZ6IO4W1acog==","signatures":[{"sig":"MEYCIQDrzDiRuKKBPxv6KpXkgM0gRkrID1CgaFeQZ/xviMNs5gIhAInpsSunaNHCNOJPGaRlU+H3E6lH2ZeDsvOScljJQkxb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314013548.5bbd5b7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23178825},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"5bbd5b7d0be3abc1941127e1ff156fa9d16e959a","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314013548.5bbd5b7_1773452177517_0.258353972865877","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314014936.c61ae9b":{"name":"remoteclaw","version":"0.1.0-next.20260314014936.c61ae9b","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314014936.c61ae9b","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d3d05e326bb5564b3d9b7d22022315955e5c09d0","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314014936.c61ae9b.tgz","fileCount":2143,"integrity":"sha512-ygq9dkaafnAnPRIv9iSAmVXnWg5vyTCQ5pMlaCT3MRCk6dP/3odHkSm4IFfo1W8AN28nxkRiLfed4s82ZYE7iA==","signatures":[{"sig":"MEUCIDei7ZsBQa7keLCDOLEevqQ3+8+hx3zThAOTmYIUlF1IAiEAsn6gLPii6jno6oqKFHY2hGoYSc0FPB1jTQ0TZKi7JUo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314014936.c61ae9b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23178829},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"c61ae9b1834f4ca7070ed46f3feb0dfa470856ed","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314014936.c61ae9b_1773453007134_0.8365518259330549","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314015903.7f033f7":{"name":"remoteclaw","version":"0.1.0-next.20260314015903.7f033f7","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314015903.7f033f7","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"3ff7d01d59b42ac50cd810cfc1e33df55140b2a3","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314015903.7f033f7.tgz","fileCount":2143,"integrity":"sha512-pKC0SNIe0HnmenL9SFigk1cdfO6ZHfN0LYCDPbK9XWmZRM6A5OXp6gEqRm2lH5JfAokKnkalUckBdvkN+4GkoA==","signatures":[{"sig":"MEQCIDmwJ/T31GtH8K6nlPJ4bnvk0kMQR3cQts373xy3zE6jAiBUGQBiS+3kXnrFFB7VODQv3zGMM68zvPp4Tvr9Sbslag==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314015903.7f033f7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23178821},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"7f033f7f305bc932ae0291b3f5c56f5836d56bb3","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314015903.7f033f7_1773453572729_0.982284490694616","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314020827.a687d8b":{"name":"remoteclaw","version":"0.1.0-next.20260314020827.a687d8b","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314020827.a687d8b","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e2fe75683c0e8491d62b9082dd98bdaba48f3faf","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314020827.a687d8b.tgz","fileCount":2143,"integrity":"sha512-57M7zPccy6JOiNVq4SGXHIckCufBR8+UufXRpnimOQV9ZQlMQtagMbTQRIjEEFpTlFDahw1K6Ty6KlhnZ9NSpg==","signatures":[{"sig":"MEUCIH+o+xvkFRk8lWNgHfJEuqr8mP6NMk3KIC5UEarf2ny4AiEA8srBXLg4lU98PTFVXTkr3YYn+kmZKrMER1exjraw8k4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314020827.a687d8b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23178825},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"a687d8b9b8d7356121910cf2ee255d2870a60c42","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314020827.a687d8b_1773454134819_0.07188779494972186","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314022233.3a2a6db":{"name":"remoteclaw","version":"0.1.0-next.20260314022233.3a2a6db","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314022233.3a2a6db","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"54cbab1dd4272eb4d0058e95fd6208b34acb2461","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314022233.3a2a6db.tgz","fileCount":2143,"integrity":"sha512-7fSeXNJEdjPKRrT/xh+YdVp+jUH+1r3j3pxQyt/Vpwp1Ln+EyAA5pSpsEHzskpQ/cpZ4X507eCM8YDo65qu0tA==","signatures":[{"sig":"MEQCIAJ3yDR6HoU5naTmEWgAH5a3xQxPWsYCMfb41mu4IIOEAiBJvjAqajqqXtBuCB6+9nIOoN+a7XMJU2i3XrO1qbAC6A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314022233.3a2a6db","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23178825},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"3a2a6dbc43cdbd460eda2bce0d6f89898bad113f","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314022233.3a2a6db_1773454983055_0.5515331525842935","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314023203.983f535":{"name":"remoteclaw","version":"0.1.0-next.20260314023203.983f535","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314023203.983f535","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"b20c25600d1ece73510cb369c2dfef6bf352c06a","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314023203.983f535.tgz","fileCount":2143,"integrity":"sha512-RmVt6n6V95AwDaaDZl44Le3ArEKNWct/2gXm3rEMROxoj5M+6qWfOoJSJihWN2p5e+qCQXM5EMBvCgL7+bkW0w==","signatures":[{"sig":"MEQCICzQB73mbduX0Nu/KV3ZlsDbtUZkXpAQgWluJhbyuHqqAiB0DDHrlzIWzZAMvdU0hSRKq3KuNu3UUanYonh2IiY4ZQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314023203.983f535","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23178825},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"983f535189a2772fab9a7b762ce243cbc48c1bfd","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314023203.983f535_1773455552728_0.27734936043507563","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314024130.9859f02":{"name":"remoteclaw","version":"0.1.0-next.20260314024130.9859f02","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314024130.9859f02","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"c0e62b7293bd2195d02df3dbda8960584dd66130","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314024130.9859f02.tgz","fileCount":2143,"integrity":"sha512-y/i3+4/MZ8KKQ7mU4FsvS3OnI57GeQ37HgQN2ohKM7G9pRjIxkO7V7aazkHxfxxOxpMXTZZJ1HHTC9xPt92Xcg==","signatures":[{"sig":"MEYCIQDcx7TLGbIUJjoo+ggelLoSPbFWB8XlNw3R2VRs4IFT/QIhAM7ahfuLBL6rjZoVBrx/GqVdVfWSN1nt5ijm/r/9/dHt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314024130.9859f02","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23178829},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"9859f02087f173a2e6165765f6a2c334b50f227d","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314024130.9859f02_1773456121232_0.6969532472036943","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314025048.a7089f4":{"name":"remoteclaw","version":"0.1.0-next.20260314025048.a7089f4","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314025048.a7089f4","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"03830e2d97de409447f7eda2beb6ba7fde830320","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314025048.a7089f4.tgz","fileCount":2143,"integrity":"sha512-49YmhcgcFr8VIqyVwGPVPz6F8MR3H7006hqbZMNKFlaxyWH7Jl9WD6931jwQELO4xWpNYfYNt+OZ27j9PciznQ==","signatures":[{"sig":"MEQCIApd929uIkyKflRNqwTKBunCmq5efrjSRpmjSoPPTxSoAiAPERSqCM6cMUwwDyFoN7To/TyUcCA0HQoL8+nmwXVWZA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314025048.a7089f4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23178825},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"a7089f44a53da270c0f3eb01bc6a68b7e554d13e","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314025048.a7089f4_1773456677040_0.8206192721442231","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314030109.80f8fff":{"name":"remoteclaw","version":"0.1.0-next.20260314030109.80f8fff","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314030109.80f8fff","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e33a3d87d437d3635a6d74a58c1fd7b2064133f9","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314030109.80f8fff.tgz","fileCount":2143,"integrity":"sha512-andKyxWruisp7afAiAFyejeTwnVxNTEZFEX7gykI111u+HZ4uAhDw7eTKGDdkjXf/EcBvTUPKSamDz5b0U34cA==","signatures":[{"sig":"MEUCIQDxkrN2xbZZoA0SbktPrA2VBNqrWaAT+UtjhtyFVmyEtgIgDsQmKCVx+/xZxeOMWWVPMBrnAlNJmPgzkxc8KYcVW30=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314030109.80f8fff","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23178825},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"80f8fffdb47a68b9506dfec7ed0c2e6515fe99f6","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314030109.80f8fff_1773457298352_0.9236747329448407","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314031914.1228b1c":{"name":"remoteclaw","version":"0.1.0-next.20260314031914.1228b1c","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314031914.1228b1c","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"52034b6288ff1ce8f1a8a1b7fb06b97a830de653","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314031914.1228b1c.tgz","fileCount":2143,"integrity":"sha512-pbnYoqdSWctT6DAEalnBIu+17JXycmqxNL4WKrDe2TTQ8I+dj7BglaXeSiwqeqoHaWA5BAz64oppx0Nn0LMS8g==","signatures":[{"sig":"MEUCIQDoodXBdq4lZ2/y8rEoQpf4D4MaXY0dUW2q6w04So1Z3gIgA/8dJtHPplGD758QUzf+uRM7OQIfcRnYNFoOB0oxYuY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314031914.1228b1c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23178829},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"1228b1c7801838fb3849ec7f5e802387a600adc9","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314031914.1228b1c_1773458384131_0.9436641238117838","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314032930.527beea":{"name":"remoteclaw","version":"0.1.0-next.20260314032930.527beea","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314032930.527beea","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"2c201d654725a45686681a5c7a8c223b0002ef91","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314032930.527beea.tgz","fileCount":2143,"integrity":"sha512-zlZyW5iZ1rP8EclUWSkSSWCIn0R6xbXVi2N+KT6B8C9rIltqfpF8gmvKLUiIGa9hud3srJaX7cOi8JfrR7wGTg==","signatures":[{"sig":"MEQCIF7fbULrfMy9a3T8RVztocAtUMw5U5AjLhdSlpwrPhQIAiBbFth7fvhDm9f1B5EJTOrGTdvJfEPQnyHUfgWpzm7naw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314032930.527beea","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23178821},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"527beeaf05495fadaffc86af12e55ee32fe56b4e","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314032930.527beea_1773459000489_0.3355309137014413","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314034312.144ff49":{"name":"remoteclaw","version":"0.1.0-next.20260314034312.144ff49","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314034312.144ff49","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"957cbe1877dc67b4a157d695d83166c5a3d34654","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314034312.144ff49.tgz","fileCount":2143,"integrity":"sha512-Cjk7145Dpcy/FfR6f5kliBtSBwzRy52A07ETHhTfEGZhv9k23XX0ByKgjve3Cr3D1cdAcJ4lKYE9W+MwSVhjPQ==","signatures":[{"sig":"MEUCIDkgwE5unLt8TGCeCRWcJNHkk5aJZ4EfUw5ss8NuHsyVAiEA2wLg4WVwttwK5xtbKVN9dUR6pmxhBw6JaLxUcSNbQB4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314034312.144ff49","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23178821},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"144ff49aa13c4f5a47a2b88f9095054a3d163037","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314034312.144ff49_1773459822249_0.05805544287633779","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314035320.7041544":{"name":"remoteclaw","version":"0.1.0-next.20260314035320.7041544","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314035320.7041544","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d54cdd986cf21843e8b4947e731b18ed554ce53f","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314035320.7041544.tgz","fileCount":2143,"integrity":"sha512-OVOhcmpKL/KVLw5wG0qCvabUiX0f/i/bAPbSI4/Sc3RXcaTCrVAGwo4Tj++WCpFrgdIyO6VCGSlE7WPDizJ8fw==","signatures":[{"sig":"MEUCIQDkNQis2onMb6zfMv7MsZTM7apZt5bR8VE176Krpl5pUQIgVOlnHNmGySxfApQARTdatZxnF3LHmcaECPVsspJLfzk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314035320.7041544","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23178825},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"70415445255bd8314b5f05f62e99cf9d1491216f","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314035320.7041544_1773460429513_0.2205445789042455","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314040540.932907f":{"name":"remoteclaw","version":"0.1.0-next.20260314040540.932907f","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314040540.932907f","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f9858411395a08003aadd2c82dd61a7ab69d3910","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314040540.932907f.tgz","fileCount":2143,"integrity":"sha512-O3JRSgsw63bnuaHHTGvM2DwZQDxAltnGSpHxfweYrp5msLMiInMBVyPI4JyeX09TgUre6TfkDS6jHpaK9gjgQg==","signatures":[{"sig":"MEUCIE3TgpJTrKG5Eu7LPLu7g8HOQc1b6mmlclbhAavQim8YAiEAwfvml0jcv13sQW3fcFZFv9QdiZ0oeZAYpwqVVKbZ2Lw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314040540.932907f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23181145},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"932907f00fe74b96656b3a04b5f2a6522ebbc71b","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314040540.932907f_1773461167903_0.9410171359747572","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314042814.4e1ad4b":{"name":"remoteclaw","version":"0.1.0-next.20260314042814.4e1ad4b","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314042814.4e1ad4b","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e4c4b826e7396a3a90e726853303dfb78a6f8d18","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314042814.4e1ad4b.tgz","fileCount":2143,"integrity":"sha512-WnbiOL2o+7slAAmXrcw6qGzwRI1TkPPzFZ+U6XoGlHO8VEm5coKS1kFxu3knhQhZkKqeU79Met5Dnhb6gEH/HQ==","signatures":[{"sig":"MEUCIQDDdxx8RbGMIs6BaJjwA/eBld4rT9cEbMPUIQv+o7h0SQIgFdJzZeIohczW9o3LN+V10VvyPDt1cTuwFhLHP1H94TI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314042814.4e1ad4b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23185579},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"4e1ad4b201bcc242b409bb13366e1f94a12dfaea","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314042814.4e1ad4b_1773462523077_0.23737765430362012","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314044913.b106499":{"name":"remoteclaw","version":"0.1.0-next.20260314044913.b106499","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314044913.b106499","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"9f9b3d509cc3ae409874fa35233030848d8c025a","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314044913.b106499.tgz","fileCount":2143,"integrity":"sha512-tjSEZGkchXYxC3tyl+XUByIIGEnyFcMJHHRLTGW4fjFfQg8VmW5b1+f1KuqqRhP1CeBiHDS7oTQZBX8ADHRq7Q==","signatures":[{"sig":"MEUCIQCjz4xZS65tn3AXyEfkQM+drGAONf6nQPM5M+0RfjO7swIgLA7A6jMAQyuC0Lbvin9R+Fy4DwKTscnFQ8ugzmOZdrU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314044913.b106499","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23187462},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"b106499cd81162affbb074c3005592333daac166","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314044913.b106499_1773463782846_0.8988846279791591","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314050741.16b8cc1":{"name":"remoteclaw","version":"0.1.0-next.20260314050741.16b8cc1","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314050741.16b8cc1","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"c83e9a97aaf6b9891a7cd77a5b8769c81fbe9172","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314050741.16b8cc1.tgz","fileCount":2143,"integrity":"sha512-Lo8TDtbaRCoZGyd0hiaMvg8Qd9wqjcCZHKhfn99ewlcEcRDYF88MYrPgCBejcTcaMnuKH2ysJnOeVqBTj0gmxA==","signatures":[{"sig":"MEYCIQDCLz890eRt1+YJsUxBi0tzXDA319mmbFwfcX7xemE22AIhAIMdxekOb9Bx3A+8nJz63S8hPC4E6/vtkCpAsOxm3voV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314050741.16b8cc1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23191043},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"16b8cc110a1e879388eca22da4d6d48fda2382a1","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314050741.16b8cc1_1773464890512_0.4496279382238175","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314051633.48b9f78":{"name":"remoteclaw","version":"0.1.0-next.20260314051633.48b9f78","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314051633.48b9f78","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"1c90535441352a4e306d64a3db50e8503ce39411","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314051633.48b9f78.tgz","fileCount":2143,"integrity":"sha512-EjB9O07g0ElM8a89KTAPAFi/LdxZrXE82N3sTUvYqXOOLhrsRrIyio9BbF2tFh3A9gbrJTwJp2XwjniAKtehvw==","signatures":[{"sig":"MEYCIQCQUUsbqpCS8r9L4tRehGlminqyJuCEwoTf0m6uPcwSZwIhAOgWEPHE8002UDc7gDQCl236L0YyBjmaraaMHPZjpa5O","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314051633.48b9f78","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23191044},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"48b9f78b10d1c01f1042b0e545c5ebca34ee5bed","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314051633.48b9f78_1773465421596_0.46431307090852236","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314052827.9c31ad3":{"name":"remoteclaw","version":"0.1.0-next.20260314052827.9c31ad3","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314052827.9c31ad3","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"563d327a8d884d3449d34d7b263f07ed20147487","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314052827.9c31ad3.tgz","fileCount":2143,"integrity":"sha512-435i4y0ltxOcI15ZZh3BsSYJleYn1V8PUbe1l1pyg4FSOOOPS0y4St43BJS776ZhLZFV585yUtxY64Ks/tlsxw==","signatures":[{"sig":"MEQCIDCog8I1qg7/gUtAKt4IGSIXfPs7JmNDlWJPxNqaAAwWAiAQlRAUT0P9UEzKDMq1mqGRWg0BWsdWC08iuAnxUm/R4A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314052827.9c31ad3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23191043},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"9c31ad3100f1d97e571c71b84ee08f3eeed382db","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314052827.9c31ad3_1773466138177_0.5294293972344781","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314054138.4550c35":{"name":"remoteclaw","version":"0.1.0-next.20260314054138.4550c35","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314054138.4550c35","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d2aecef66d80bec294dfeebd81ce99a2939e3681","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314054138.4550c35.tgz","fileCount":2143,"integrity":"sha512-FQpXJLReQ3ynegMiDntxG3Yxwz0SWKWGcVs2hqk73vsfUJdWuLyHiYcJpTQ3xndC9Na9N9UhckcH3m2sheo3+g==","signatures":[{"sig":"MEQCIFTydy2na3fXq+6XuGfBZHfIUuPXKjkytkSX6wPAwzEqAiBW1MYB/I2kNXo4GGvadiRfGh4zRO+0YHtDOsS6uyaTtg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314054138.4550c35","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23191683},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"4550c35dedd210826202ac6e35920e59ecbbcad9","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314054138.4550c35_1773466927571_0.26749015479016114","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314055156.b969862":{"name":"remoteclaw","version":"0.1.0-next.20260314055156.b969862","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314055156.b969862","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"17cae81535c8349834540797acf497d63ece7237","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314055156.b969862.tgz","fileCount":2143,"integrity":"sha512-G8ETFdJrm47eIVlNQksawfrBDDjQzkfqAQhT0V7dKZx9yZw7vygv0DMfGbOE6atfe/AgYNoS+N3Ne9UDEeFPdA==","signatures":[{"sig":"MEUCIQDSyzwM8YVWxcHT8PKh2oPF8pdUl8D6VtBinYG4K8aIgwIgLDz+DKw1n7MoN4EzXP1MCrV3+CAa9+3+5TeAtLgfV5I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314055156.b969862","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23194193},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"b969862513caf73338c41b9a6a6bfafc7cdf026c","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314055156.b969862_1773467546072_0.9367954011765445","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314060142.8a54782":{"name":"remoteclaw","version":"0.1.0-next.20260314060142.8a54782","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314060142.8a54782","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"0ee9c7bb8235f7697b6c42723b109265c42970b2","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314060142.8a54782.tgz","fileCount":2143,"integrity":"sha512-G9TpsrS9cmg17hWV7FWqfDxJ7mcicWbq6PkmyDiq4IVMLDrzTIYOQKqW1DdFpZggGf8qxgGzWr1285yZbmQPEQ==","signatures":[{"sig":"MEUCIBChpBWQr0b1gibpHkt1EyKwJ6yh7Iem9FMBoh5S2nZMAiEAlqw4TdAHOGcMA7PLRVEFV4tbq/7QxhgiLjZ/4tCYWYc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314060142.8a54782","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23191687},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"8a54782ef79a8308e2a04cbc80d24d4f6f935433","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314060142.8a54782_1773468132332_0.2189924338325977","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314061422.83a114b":{"name":"remoteclaw","version":"0.1.0-next.20260314061422.83a114b","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314061422.83a114b","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"90dfdb32f2622e19715a528875b8639835f12ccf","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314061422.83a114b.tgz","fileCount":2143,"integrity":"sha512-aHA6W7nYrAR8mgU1QJ6ACn6d/un12cwYRvUrFLIuyd1xTYnkaroreI/kn8eQUzPt0pIn7g1Jav2ZMnqFoXkdbQ==","signatures":[{"sig":"MEQCIFjva39Mk6+eIl0r51HgLUW+EY4+Uh/uSK7YRLmyHnrkAiBxcr5u/omdTkyPUNrly8eRMDQ7QTUs4WgrC8R445pSqw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314061422.83a114b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23191683},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"83a114bc5db3ee9fd5d573f89533829c79f6c68a","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314061422.83a114b_1773468891438_0.12340051201878866","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314062353.61b5ce9":{"name":"remoteclaw","version":"0.1.0-next.20260314062353.61b5ce9","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314062353.61b5ce9","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d1888b433a6abfd3f6f30b24ba456475f7122029","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314062353.61b5ce9.tgz","fileCount":2143,"integrity":"sha512-MZGCfpRd9lmm/k+e7QMtqs3T5WbzTQ7bOhRWIIZh+EJdPlfu+lnujbuMx/uku/TKGMxGts6aFOW8HIVG9rpJNA==","signatures":[{"sig":"MEUCIQD7igI33z46PjMbWQLlcZtR/jen5+Iz4bgqsQXHNZ3jxwIgbf3+6kZRAoiifQJ6/5u/X+QNGWC4+Dw8jR9unMcUQic=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314062353.61b5ce9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23191683},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"61b5ce900e6223b821abf719ed5b5064d5ae6624","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314062353.61b5ce9_1773469462240_0.7510695225571007","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314063327.5081351":{"name":"remoteclaw","version":"0.1.0-next.20260314063327.5081351","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314063327.5081351","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d65812c8b5326c38bcab4348fce24328ddb6d8a8","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314063327.5081351.tgz","fileCount":2143,"integrity":"sha512-oEF96qijUQ+j9kgU9O1503AWKCPAjsShxS9BDCYhwS8GoLDfUGK04q4h7wsdj7kfCu0UegjgqP3JpSdOuh8Iaw==","signatures":[{"sig":"MEQCIF/raHY5eByu3ZlBOIfXIqr9v1uSXEgHX2WKCvo7Q8wrAiBmy2ov9yjjGP8DwbeuR1c6OVAeccFvJ2D4M+jlsMgnBg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314063327.5081351","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23191691},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"5081351c6bca2eb3c4d70e6573d0faf85c8a14bc","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314063327.5081351_1773470036672_0.9199197695616017","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314065044.62a48bc":{"name":"remoteclaw","version":"0.1.0-next.20260314065044.62a48bc","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314065044.62a48bc","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"649cd4fb05fdb6d757b6022e4a1967c0993dca79","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314065044.62a48bc.tgz","fileCount":2142,"integrity":"sha512-KIY9eIZXnva4rYJB7YbQdPJRpj0gwZ4J2xUOjYrLutbZbvgBGYQdbiLaTQU/3zaA8u6bwuw4odOkQIeYWKipnA==","signatures":[{"sig":"MEUCIDIZOtv5Js9IAsh72ErzWUNUq05xYsjfnyE8GZqDqPMHAiEAmC1te7kn/Y3ikhTYGpUVkGC/xGjvtelYgVqf3TFsK1w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314065044.62a48bc","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23196686},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"62a48bc0759ac6b068033c62a12ef6ee9384d237","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314065044.62a48bc_1773471074525_0.7803167755527425","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314070135.1b81456":{"name":"remoteclaw","version":"0.1.0-next.20260314070135.1b81456","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314070135.1b81456","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"7ac28120347023841bb8e16216c2a7884b01e60f","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314070135.1b81456.tgz","fileCount":2142,"integrity":"sha512-4zs1vr11ze8n/28d2Mimk11mkl93kVldgdUZ8u4nfCNJVsIG3CnkEzutkham67pH5R5n+CSFh+Ly45TDzBr5Jg==","signatures":[{"sig":"MEQCICH4rAVeQPrUm3XPgRPxpM8QbZL0p4anA9D6VUMsSaSxAiB5zI+XHb/7XibbtoW/NRfOQQaeHKsNERo2kAuj2htqEA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314070135.1b81456","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23196686},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"1b81456339f00f4a4edce962612ed00640357dae","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314070135.1b81456_1773471724977_0.7401756599526292","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314071436.96ec928":{"name":"remoteclaw","version":"0.1.0-next.20260314071436.96ec928","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314071436.96ec928","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"35bfc1e161fc994af8d6942ae06778b64634107e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314071436.96ec928.tgz","fileCount":2142,"integrity":"sha512-bj4Kjd29y53BlfF3yBb+eCR6E5qfbuwbdvfJLuWtp4iXjbwGt3RZIGjHob9viY8Y+pAlkq4myrtS+ghEMAr0vw==","signatures":[{"sig":"MEUCIQDUSjBr1gLkJ5EP5XEqiNCJsp7rPyVThTKapKKcpLzWfwIgIIG9ahP4w/EzRxMZqtNAmrSHUN/SdX57ibOeL7SfAMw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314071436.96ec928","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23196686},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"96ec9288aae2797ae7fe2a3db7acc92867a7a557","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314071436.96ec928_1773472505937_0.39944941123855626","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314072546.6abadae":{"name":"remoteclaw","version":"0.1.0-next.20260314072546.6abadae","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314072546.6abadae","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e24d3f6f9532c9425f2d5210e415049d7836223c","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314072546.6abadae.tgz","fileCount":2143,"integrity":"sha512-GBKjedua6ywKA8r8HNzAWXJ8m42aozE4nVjBk0jpOW2eZ+4VpfUFXBJFax6znDqyG4Z6uQddLce79Fdyp6wzQA==","signatures":[{"sig":"MEQCIADFdZCshYrjYBPF8GT/3FwsPVWBB89h1WTjQmkZ9jk4AiBiRDtDoTZaSXtJAdVFQtee86xH/G8tGePlkfiao1GIdw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314072546.6abadae","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23197456},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"6abadae84c8bd3327540c5d2d6ee0460f074f454","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314072546.6abadae_1773473176000_0.31804909937261194","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314081635.619d47d":{"name":"remoteclaw","version":"0.1.0-next.20260314081635.619d47d","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314081635.619d47d","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"8671935742b943510ece8c24d060a87cc9834723","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314081635.619d47d.tgz","fileCount":2143,"integrity":"sha512-S/AHv1Z0uyUcUN8IPQJAdJMymXub8weBQW7bUHH3rvu/96lMo52Mqm6DvqYVZF3wqZVmCpYT9PR1v/tAYjnqww==","signatures":[{"sig":"MEUCIEIpobNxD5cVIU3gLGfJfnPCHkY3MkRqsModJJ8vGy2sAiEArFP0BmLtuOTz49CcfBtx2el0YOn821zKJv1B40Zn49k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314081635.619d47d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23205463},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"619d47d41b00c1b880837f81b35a8916bd75ce13","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314081635.619d47d_1773476225590_0.6866736759258911","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314084240.3ee51b4":{"name":"remoteclaw","version":"0.1.0-next.20260314084240.3ee51b4","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314084240.3ee51b4","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"33e465db793cc961e5ae91e1ae4218c8357acbaa","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314084240.3ee51b4.tgz","fileCount":2142,"integrity":"sha512-WguCDDPKW51+aqvOnssM/Y/CN1tfk/jihTRpu+Nb1l4Snr/ER91HfSG1urEN0M6h5umn6J7E4dO+cSCfdZ5dKw==","signatures":[{"sig":"MEUCIQDPb8RBEQprZ3a8NA+8K528wSWUejWpcdjt2L1RrRUxcgIgYZCJsfboXZZzf8e+gifQPM7mDJECzBaA7XFWgM7U9Rk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314084240.3ee51b4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23207411},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"3ee51b48f756b777dbb68a5aaeb78be9800ae622","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314084240.3ee51b4_1773477789144_0.5768842554758455","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314085956.5e6aba2":{"name":"remoteclaw","version":"0.1.0-next.20260314085956.5e6aba2","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314085956.5e6aba2","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"b707a8b35d24d6b2b2bc0fd9f23f7312c2aec30b","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314085956.5e6aba2.tgz","fileCount":2142,"integrity":"sha512-8+a0G6PwGg7ec/c68nd5KKBgKwe/AUj/5k8ENPjgKEFO/9P1X+N4djPdUx1bjx8hc4qvc150JOLgx0Mx3F32oA==","signatures":[{"sig":"MEQCIHc8fcypRUlcJicothfj4l2u23B97KLFW9WMiMfmHwF0AiBEWTcwzGvmA/UlQGfwo9jr/Uin1qntf8OQqHDv/Iqvrg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314085956.5e6aba2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23207713},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"5e6aba2376f5d9ec233f531a1b5746cbb16fdd70","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314085956.5e6aba2_1773478825671_0.634979056718157","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314091445.af5c2fa":{"name":"remoteclaw","version":"0.1.0-next.20260314091445.af5c2fa","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314091445.af5c2fa","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"b9258c4bc32c2eb721fa0abcbcfe3c74fbfde55e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314091445.af5c2fa.tgz","fileCount":2142,"integrity":"sha512-JjKSTenx76e+Tzdi+9IMNhzCYS0Q2ddCdZPlHd1MzAwfjmkdpi4G+2A00ADMMLGh6Zl2NuxQ1f10G7R4IOFaXw==","signatures":[{"sig":"MEUCIQCN8s33Qo+ma5joDR70hNb21RLuwOT2CRBPcSEKkSjWPwIgKFSgJ/d6VgW6QWWQdSWvznCgXhy1g/5L6pcg5ABEW94=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314091445.af5c2fa","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23207743},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"af5c2fa5125cb9cfe8d8c1060ab9d4ff3f6cf9c0","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314091445.af5c2fa_1773479714712_0.3199795411740367","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314092537.688ae36":{"name":"remoteclaw","version":"0.1.0-next.20260314092537.688ae36","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314092537.688ae36","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"cc26b45d5310422f2fcda90a17a2e86eb2666666","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314092537.688ae36.tgz","fileCount":2142,"integrity":"sha512-q4BIi31KPkw7T6eNqLI+hlCNM0psUTkIwZJYZwXD8Vvyg0GKj1SE1MSLhxuYTFF8y+j9Dhh6UeXUyBgXw/8IYg==","signatures":[{"sig":"MEUCIBhfRtmayAyP2SPUFSbi1j9w678GIIAIrvQsaAjWYs47AiEA7WUGN3001W/gw0mRiL0xdyuYzWpEQUCAR7isP2EGiaM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314092537.688ae36","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23207743},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"688ae3611165625f5254167040965fe1ab0c0cfc","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314092537.688ae36_1773480367394_0.6266602299663149","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314093810.8bbf02d":{"name":"remoteclaw","version":"0.1.0-next.20260314093810.8bbf02d","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314093810.8bbf02d","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"325ef749a822461f3277a2cab68a63c246114284","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314093810.8bbf02d.tgz","fileCount":2142,"integrity":"sha512-jY4Wl/WHKlteh32M90AnvVrpsgIFYn/7yB6cOHNyC7VTv0U4YvU+TanI2n3emJUo6odUpIQdeUMcsOCTBcNvCg==","signatures":[{"sig":"MEYCIQCzgl8zwx5I0MV5vO8wdq5cnbnzdSbLx9OZ3ZE4tHvF2QIhALx839EGlk3FP3l1VkNFBoargnGwb4OYjFEyKsUGJmHA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314093810.8bbf02d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23210327},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"8bbf02d4c7054a83f56820864e80c8135e0385ce","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314093810.8bbf02d_1773481118938_0.4944645600887523","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314095932.3bb9ad9":{"name":"remoteclaw","version":"0.1.0-next.20260314095932.3bb9ad9","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314095932.3bb9ad9","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f8febdeb01c4dfe84eea2f5f0949e736045bb422","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314095932.3bb9ad9.tgz","fileCount":2142,"integrity":"sha512-qvcSxGu+W7VV/P0Hp0PkgZK5DoTCTseSXzS9KDiDVr5/dAL6IVSJSMh6C/N7xCvCVIn+wZ3+TZwhVrPyNJyybw==","signatures":[{"sig":"MEUCIQDxGSPmaWH8h8txdEpQA9pQ2axkywgWHZfYh/7ydLOcdAIgICVrgg71k6xT6hlbue6btHJGq4j0WNNBDwQ6jdpDLlQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314095932.3bb9ad9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23208167},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"3bb9ad915e4f7ce66da57a6a8614353b45d1d2f1","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314095932.3bb9ad9_1773482400497_0.9764894400271726","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314101434.d28301b":{"name":"remoteclaw","version":"0.1.0-next.20260314101434.d28301b","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314101434.d28301b","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"db0e1df8f2a135ca200368a6f8d9d48263446c12","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314101434.d28301b.tgz","fileCount":2142,"integrity":"sha512-+QQYT978DN3V4CXCOq8aiOc8bvCiV94TAGcF0al0+VVquN0jLIcB979CEKrxtcPl4bT1Hcvnv8BHs0MU1ogWCQ==","signatures":[{"sig":"MEUCIQD3nJIJRCpfdkCh3xmk+jcGZpEoZKw0F5PfnK0Rz7XdKQIgYiwIBDnQrcLN3VMkJs2ycXmv+Q/aW52uKxUjMI48BBE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314101434.d28301b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23208171},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"d28301ba414d7d2c9944d04c7136f67f22e48f7f","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314101434.d28301b_1773483303678_0.6468525396206743","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314102857.c454687":{"name":"remoteclaw","version":"0.1.0-next.20260314102857.c454687","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314102857.c454687","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"84c48cc26b05b0cb2ecf8f0feb787b1bdb58ac2d","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314102857.c454687.tgz","fileCount":2142,"integrity":"sha512-0b+e8nmd0aDTTYmsU0ip62NHVWNFjNGhzULkcvm/Tnf4ZmC+T+J9tH/IsFmem0Kv55mAh9SLXpQp67Z1a4w7Zw==","signatures":[{"sig":"MEUCIQC77Hve6k6jqdnQmG/pBOdVKCJs9UfnUdtFWoKlie45wgIgKHGp1bRqDdLYjWkq9w/kdDjfhtC/MJZFMFWrA3HHvbY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314102857.c454687","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23208171},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"c4546872c88fe34d1733d979013e70ff1da2923c","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314102857.c454687_1773484165992_0.49474617762017714","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314103842.dedc9b8":{"name":"remoteclaw","version":"0.1.0-next.20260314103842.dedc9b8","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314103842.dedc9b8","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"a977a32b601a25f5f5de0abd5cad225eff021120","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314103842.dedc9b8.tgz","fileCount":2142,"integrity":"sha512-Vg7BgzDYo6jHm4DWAOYiQS1Pj91gKNjVhuXmY9tIKO1ZKLkc6X+lVFf4CTbjcEPg/++RdOb+SnBuRiNignTXBA==","signatures":[{"sig":"MEQCIG4qiW8oHzksaV3rDyKxn35/g8NnA9IRtzTf/Q5/d07KAiB3xvXEtw/KG5f0xWcqVABHZXnLyjbcEWK/mXzaWQhdnQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314103842.dedc9b8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23208221},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"dedc9b8f3dae9497e71cbe066e6c214942da5981","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314103842.dedc9b8_1773484750900_0.3187277110043907","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314105020.196f533":{"name":"remoteclaw","version":"0.1.0-next.20260314105020.196f533","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314105020.196f533","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"1eaf5287d7fdf9531c5ad39a8667e9a5653dbfa8","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314105020.196f533.tgz","fileCount":2142,"integrity":"sha512-6zm0G9SA+oH5BF+nwXZfXArp8PZ4pw6lo0ELwWv2+qc9725u8HfhpyOhDBpX57trr2Lmmi4bWjw9s2SvgZJdaw==","signatures":[{"sig":"MEUCIQD0xMsRJA0yNUSfDmePH+jxHVjsMvb8o3Fgjph6cgxwXwIgAT+c83hfmoAKjYawbqDLxMnI+mMjHgvNVRKi8Y1CA8I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314105020.196f533","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23208217},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"196f533b265407a0325e41e7c8cc5270eebfe920","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314105020.196f533_1773485448832_0.9885090824384595","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314110006.84777dc":{"name":"remoteclaw","version":"0.1.0-next.20260314110006.84777dc","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314110006.84777dc","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f10236cfa7c592ac250beec18b08c3e73f187847","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314110006.84777dc.tgz","fileCount":2142,"integrity":"sha512-j5lVP0oRzfStsp3wkdLAj30oRBiO2ws5zztjRSJH17imEA/qlrTvLvpVSYhYQKW82LhMx/g7tf0Qrp8UlWROGw==","signatures":[{"sig":"MEQCIFsdcQINI6INU/GpxVcsxRsx8TfkGpWzNZEbnjaJnkcfAiAoZJvVYEelWG7LaHP3b4B8yjPvfNGpErWnkNNVgWIcNA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314110006.84777dc","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23208217},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"84777dc82f4c8b40bd9311f52cc81a97579c7ed6","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314110006.84777dc_1773486034091_0.23086467337773664","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314111431.17daf5c":{"name":"remoteclaw","version":"0.1.0-next.20260314111431.17daf5c","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314111431.17daf5c","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"2c597b4b1bd1ead93b1beafeed2984852f413727","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314111431.17daf5c.tgz","fileCount":2142,"integrity":"sha512-tnrW64Zt1YHs6LKH99aXauyHpTQBy2AiR7ut/EYyOb5rpFm5ZbyUlOHJPhi4YEFCZ5gQZbdb5Qdz6hH28WKWqw==","signatures":[{"sig":"MEUCID0b1jud2usTlXbe1XLACq+v6r8MO4LPmw32BmFcq790AiEAtC3FPCcFE23jDLQOuWql53hbYAptYbJdl/TFwik2MHA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314111431.17daf5c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23208217},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"17daf5ccd87bc8e739ed65e3e8634ea2d6993d5b","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314111431.17daf5c_1773486900740_0.8884766800112793","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314112419.3d0d1eb":{"name":"remoteclaw","version":"0.1.0-next.20260314112419.3d0d1eb","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314112419.3d0d1eb","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d573595917c4ef886d6c082660c532665302d36e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314112419.3d0d1eb.tgz","fileCount":2142,"integrity":"sha512-7cDbF5iLQroF/Ygrx+BNSw6nNQmL2RzdUQJQxdDbYwNNr/Tqx2TX9zekW0XoPToXJfLiPFII0uNwQ10Ue1L5jw==","signatures":[{"sig":"MEUCIQCNpxMzbXhL3VbLAgO4Di9mxZTg/okYd/Py4DE0Ngd9BgIgdCnNGJbbk2YGA9JnIwafA5nm8oWQHp6ZsfPcn/5vnDI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314112419.3d0d1eb","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23208217},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"3d0d1ebaea527f837b01195b717368de1659a98a","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314112419.3d0d1eb_1773487489125_0.42687346937490256","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314113405.b824792":{"name":"remoteclaw","version":"0.1.0-next.20260314113405.b824792","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314113405.b824792","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"6de4ff05b1868dfaaf9e5b292d9079e43367ff74","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314113405.b824792.tgz","fileCount":2142,"integrity":"sha512-Oz2BnIP2BBHah4NoqBIbcgEaQYBCWVSvdyDzNbVe6SVHqs1QUN/ikbLWfhjM+y5tbx/SfYnw50mC/OF6/0LQmA==","signatures":[{"sig":"MEYCIQC3vFtCBRkWOF47zH2v5rtID/kEX8Mg1n/jmWLTrkdovgIhAKViRXcD7eYeYmAVukw1BUH5wKd3EdGATC3S07cW8HiQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314113405.b824792","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23208221},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"b824792176f5b22f1090b5ca313b2fd98cce11e8","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314113405.b824792_1773488074854_0.6689644212931882","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314114342.c01fdde":{"name":"remoteclaw","version":"0.1.0-next.20260314114342.c01fdde","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314114342.c01fdde","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"1b1cf39960ff3d7e1e2c3fbdf1047b6b7ee9f73c","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314114342.c01fdde.tgz","fileCount":2142,"integrity":"sha512-MO58D+xmpU6/nf8ee6DHlGkwXumQbfhjYys+SQ1mvgGdpMV7xM+DlfnitSCgYjjEOHJUPz6GOg/NXpoOq5c3YQ==","signatures":[{"sig":"MEUCIGif/RaPgp6OmA5egpIyVx8F1Y1KnMUfjVf6EE/pVq5eAiEAgVVrlLkJmsUz2+C+/P7hCYGIIZ6fpGWdZC1xnotAGV4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314114342.c01fdde","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23208217},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"c01fdde1fb7da0e39fcf1460a635ee1893cd52d0","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314114342.c01fdde_1773488649115_0.3857032745247333","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314115303.33acda8":{"name":"remoteclaw","version":"0.1.0-next.20260314115303.33acda8","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314115303.33acda8","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"ea10792a9c861c9854dc63655f23ffeef5f4b12d","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314115303.33acda8.tgz","fileCount":2142,"integrity":"sha512-fUDiORI4c4urya3YmY7QOc3xsLNqxNhD1M++EgDedhXvApwr7bS0xGz3Wi45AZaC9pKe+L6WRyPWGykPS17WcA==","signatures":[{"sig":"MEQCIA/xr+GPs9r7BoI0b16lYZed4zrzljkUzGYPe5eO3jYqAiB1pkebqiJ7LKfPOHtC8peq2gttmQoRZ09CDxnZITxCBQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314115303.33acda8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23208221},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"33acda82140888d96bb851b06843ce0789e34cc3","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314115303.33acda8_1773489212881_0.9148859496030775","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314120228.424084d":{"name":"remoteclaw","version":"0.1.0-next.20260314120228.424084d","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314120228.424084d","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"90010f54c2080b4c22d7ea130614c43979564f76","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314120228.424084d.tgz","fileCount":2142,"integrity":"sha512-7zISUHnkrOKYbp0Xx2UChRk/6y8EHIUBvX6J5H8Rw+52mpf9sJyUS8pT4Dlb5blogOLwmsq8ouDwmjHiE2DwZA==","signatures":[{"sig":"MEQCIBboimTRR5Bt6HBZ/kSd1bSUMj8NFXXlfyXq7kuLunptAiAkVolmkqmUdrAVW81RPwqgmV7Nzg/rfCPLPc4MiWhU0w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314120228.424084d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23208217},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"424084d27a54bd31de354c884e068ddab6ae2ed6","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314120228.424084d_1773489776014_0.34399956667527554","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314121448.39a2a67":{"name":"remoteclaw","version":"0.1.0-next.20260314121448.39a2a67","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314121448.39a2a67","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"72128371e5de204b0ed442d9446c662e0ab9939e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314121448.39a2a67.tgz","fileCount":2142,"integrity":"sha512-ObQmluoyzfM7Ce+Pjsdn2jZyP2nDwdkK+2UgCnv+2YVE1P9EPuzdKBcoWT8zBUh5ZMiucYXE9XsDov9PtELrjA==","signatures":[{"sig":"MEYCIQCfwGBwkQ6nG8tJJhd8NZjhs0dpjwwLEchgIRADHa0diAIhAKx2rJo8SorxYo0/xt2N/niHQIuFIVR3dKBDK+CdMDlc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314121448.39a2a67","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23208217},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"39a2a67e421557d79118a1603ed1f0cd791b44d3","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314121448.39a2a67_1773490516366_0.9109388915591048","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314122443.c4edfc4":{"name":"remoteclaw","version":"0.1.0-next.20260314122443.c4edfc4","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314122443.c4edfc4","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"20610e1d9b1e145ff75b96eff6551160008725fe","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314122443.c4edfc4.tgz","fileCount":2142,"integrity":"sha512-y5B9+fxIdR0kmb+r3gscyh/EyX3wMIbXGRXDNfytz14fH3UNyitkmlLEUUKFrkwoOMW5zj7alGN1c1TuUT6z3A==","signatures":[{"sig":"MEUCIQCqUyQhgFwdfvuDVnS2zv8cwbzXATyPHDPCtn4EMURCIgIgaGn8x/qFiB39ccX7avgKES1a0v4qAoVasSVCe9MQt9g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314122443.c4edfc4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23208217},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"c4edfc4a2b3646d4abe4f5ab637d0b8f1840da4c","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314122443.c4edfc4_1773491113649_0.6265159154912541","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314123438.8f7d697":{"name":"remoteclaw","version":"0.1.0-next.20260314123438.8f7d697","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314123438.8f7d697","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"a6f8d389051df025ef3fef80db4ec7993873fd15","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314123438.8f7d697.tgz","fileCount":2142,"integrity":"sha512-/AQzL3XqnS6eEJiFhFeWvEtSWtXlN8fcewqycOV+Sm0R5i+dqcAdqBz6XD5m+SLanoYjU8InKvtl1byq4bA2mQ==","signatures":[{"sig":"MEYCIQCNpGjmkH33uIjYoPoke1Lk2fXN3K5CngZwoBlJU8AqOgIhAP3LHHxOvPBP7PCAraYaX8UWlK+39kQz8hFz5pkpgdkz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314123438.8f7d697","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23208208},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"8f7d697a10a5be6fc128c6741358c6c86e9636ac","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314123438.8f7d697_1773491707030_0.9475202962617564","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314124548.2c058f9":{"name":"remoteclaw","version":"0.1.0-next.20260314124548.2c058f9","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314124548.2c058f9","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"14a6900acbbd075ce203e43c0a9e60eb7e983b54","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314124548.2c058f9.tgz","fileCount":2142,"integrity":"sha512-fJ7tEH/Is3q97B+jcJ/P8ud/CBCq7QaVd+ZUsq+sEackRMwxhgaF/anD+WxMc8SNHwgYf5V5HO8o3Wcw0irGdg==","signatures":[{"sig":"MEUCIHm4cOE0HqOOOCqZCDVlsx/COg43wD4H4kRzKqHH0zCVAiEAt2b+lhpMs1O962K4TeX9BeU1rIqouKMZnVn00u65tzo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314124548.2c058f9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23208217},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"2c058f9c6e5048d2fb2337ca95ee7d61f5ad88a5","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314124548.2c058f9_1773492377289_0.7633297966620023","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314125511.b8336ef":{"name":"remoteclaw","version":"0.1.0-next.20260314125511.b8336ef","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314125511.b8336ef","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"4213ed21a215f1ea7e7e8060ee6b7f3d547c8658","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314125511.b8336ef.tgz","fileCount":2142,"integrity":"sha512-IgwfMPJOQlJAi0S7/JxiTHVwqJ2WxH4+WXc6sGtbfesQXRGZI5zpIlRxfdAcHcVqx0zEV5KGTiYxoKeipbU8oA==","signatures":[{"sig":"MEUCIHCc452EAGNqLVDmy5I4cN+e72oVEusW02TFetOFzSlsAiEA/59444LU+fHaaX8D31Ht6xHyypBuMnCADUSF9Wz6O5Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314125511.b8336ef","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23208217},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"b8336ef3bbee00ab5efeb5f824c420cf881a7920","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314125511.b8336ef_1773492940059_0.16145386203037493","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314131430.612c2d9":{"name":"remoteclaw","version":"0.1.0-next.20260314131430.612c2d9","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314131430.612c2d9","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"2083c815b9c2c8a3cc6dd4a51e27ec88c5ef9889","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314131430.612c2d9.tgz","fileCount":2142,"integrity":"sha512-PFZtXdjO+Z1JSuNLsCJPmqJhRoQY9l3Y1B2sarAMOS4fltKoZKf7+JBtucRiBoWJ9bx2vPV3ifCcelGvZYhJRA==","signatures":[{"sig":"MEUCIQCqIEdDrnj8qIDjGYG7Jj4TEQqDU4cPshsetlWCgN6MCAIgbx5qQZOv/Kj1O88GMXzoXTM/AYihOaAqGWuWPCLQRhY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314131430.612c2d9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23208217},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"612c2d931e122d3a5419703edc7aa7705b1df4bf","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314131430.612c2d9_1773494098068_0.9967885155793688","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314133625.67e9a22":{"name":"remoteclaw","version":"0.1.0-next.20260314133625.67e9a22","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314133625.67e9a22","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"97abea717da3e24e6c0c7b8a6f6a59f2ad250df1","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314133625.67e9a22.tgz","fileCount":2142,"integrity":"sha512-mHzHjF7JDTASNWkixEpksjcNOfEyJMOqeB/7kiOqt+fzje4WqvgY0qSbu/J5dF5Gdczl/1AbiqgojfzNxKm9fQ==","signatures":[{"sig":"MEUCIQCk9TZ1j9X80o2SkaK+Hv3QOjWvjJBNM1mKFrEZgqzEBgIgF5rh656d6TD4l9CPQiruHPwII/OcZkl+kQuaTEzHxIg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314133625.67e9a22","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23209535},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"67e9a2287f17a24850a2fbf4e24fc59ede5cc16d","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314133625.67e9a22_1773495415678_0.29954876365575855","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314134641.d2268b0":{"name":"remoteclaw","version":"0.1.0-next.20260314134641.d2268b0","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314134641.d2268b0","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"2a0148388fa13adfdbbeaa9374545c067c2f27be","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314134641.d2268b0.tgz","fileCount":2142,"integrity":"sha512-wYm6mF8GppkEGMEF3Y/RpT7cLelXhz3eUnXGajYK55keNsBVqfbV60FYoiFaF1O3NVX3l8p9+UbxzpHN9C9lSw==","signatures":[{"sig":"MEYCIQD/5Aaz0EFgcFxBJmBUMX2TVXQ3k9XeeB6UQ0OGeNurWgIhAN5FLsr+DgRUDSANp3mFFc56zAuO5N8QHnSpLVlxtfMz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314134641.d2268b0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23209531},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"d2268b03352c8f814261fbb227a4a203da8a4f0c","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314134641.d2268b0_1773496030822_0.9035935127310057","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314140607.3c168cf":{"name":"remoteclaw","version":"0.1.0-next.20260314140607.3c168cf","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314140607.3c168cf","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"fd524ce4c07c8de12ce9a1619267f0ffa8e8ce3e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314140607.3c168cf.tgz","fileCount":2142,"integrity":"sha512-XRUCK9fMYi5O0UoV9w7GECFunJwIo47qDXLpITu40nfINM/s8CLsp2woAa75vTif4YvMDuOwbAkQCE+ooiUc/w==","signatures":[{"sig":"MEQCIGetlqwZuMJd8T8Jj4yfArXVlVQtMbdiun3475IT82iUAiAivWxjBlQF3Ac70YT4kTd2whdnUGyf7V8LdThJppBG0g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314140607.3c168cf","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23210017},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"3c168cf467825004f62bcf1ba7135ee232a714c5","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314140607.3c168cf_1773497197434_0.1484953347342941","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314141630.9c766f5":{"name":"remoteclaw","version":"0.1.0-next.20260314141630.9c766f5","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314141630.9c766f5","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"301a669d2276440c0a43cb9b1d0f8ec5172cb837","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314141630.9c766f5.tgz","fileCount":2142,"integrity":"sha512-whUp2zjG+OdeA/XLBRia+SeZjei8HNnJlFPHhnqHbK6hYF5i2ChR0K+h55pxL909kbANq4pVzY5Uh6aNKIReMQ==","signatures":[{"sig":"MEYCIQD7Vij5ibtJEIwPwmjxTqX2azIBa9YfxajNq9XeyS8llgIhAIgFVexoohIPB+6BsBOTJXEA9VXIMhUJ5kpDmu/qXSlq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314141630.9c766f5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23209983},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"9c766f5a359317ea1231d28e0e19b582efed4d25","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314141630.9c766f5_1773497818181_0.31007624917592236","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314142958.efb77b8":{"name":"remoteclaw","version":"0.1.0-next.20260314142958.efb77b8","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314142958.efb77b8","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"46c1d5a7217ac88da8eaccd6a3a12bb42a0fd17f","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314142958.efb77b8.tgz","fileCount":2142,"integrity":"sha512-+v/VYqa6qCnkYgOVxuxp3Ka8U+/bEUaHdjCGayglAGEBzrcl8NhMd9tN4PzouhCC9i3qI2vBmstSDqDXcITCIw==","signatures":[{"sig":"MEQCICYEtvPFDWbnvsdcvMQXq82VFHJokxwDChdZmgDkRHxcAiBcay3Dj0knVGuSPtQBKt8FG5ebT5jlm6bZdKgmg3PZtQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314142958.efb77b8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23210155},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"efb77b81fba22b4c98836bbf67c8c86beb80575c","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314142958.efb77b8_1773498627436_0.6079100305008838","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314143945.86c5371":{"name":"remoteclaw","version":"0.1.0-next.20260314143945.86c5371","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314143945.86c5371","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"35fdcc172e60410aa2375a10b6b3d67646f75fd0","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314143945.86c5371.tgz","fileCount":2142,"integrity":"sha512-mvkjf3j0po8PNP7OR6TLmjP7zhhsSqmK0hRM6z+AVQA4JnVexy5Ys6Kbb5xPSP/pUawdZQhdnEHeYuJ5bitwOA==","signatures":[{"sig":"MEUCIQD418JM3wh1rnoPk9li+nJkdVIo/KH9Dyuqpy0Ahrzo1QIgeNVRghuZWCsg7P2YXB7FIJZfsfj6ml62XG32+YvKkDQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314143945.86c5371","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23210349},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"86c5371dd11ed34a121ff35f905ec957c4294b1a","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314143945.86c5371_1773499214890_0.36463149027019237","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314145546.4fa4c15":{"name":"remoteclaw","version":"0.1.0-next.20260314145546.4fa4c15","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314145546.4fa4c15","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f7c3011a46c13a1197bfd566396d1de5d1aea5da","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314145546.4fa4c15.tgz","fileCount":2142,"integrity":"sha512-w6sPsAAEuXcPrhJgkSXF5hehobufC8b8zH0UMQUPuJJWreSIeClBM08RN0PArtMwhLIZ0dGs+NJ3REw8TelEuw==","signatures":[{"sig":"MEQCIDdAyn3TodjDa1CNK3rgMcYg0Vmp+tDbXa8Md6OyczhdAiBdK1qTxM635nj2WV40lLJhMMimicu/wg/UloeKJhGQWA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314145546.4fa4c15","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23210939},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"4fa4c15c6f18b839e8d8f5260ffb622b5782c4e7","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314145546.4fa4c15_1773500176416_0.8234843500926468","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314150547.fe24e21":{"name":"remoteclaw","version":"0.1.0-next.20260314150547.fe24e21","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314150547.fe24e21","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"6a007808bcb2efd701be2e4e2c66be6a0afb50f6","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314150547.fe24e21.tgz","fileCount":2142,"integrity":"sha512-TOQf5jt1pzGMRU37bQncjGaXlrBFJ21Tlx8vSq6SV72uwsbGog1Fc7HEdmI/KFc3yuqWo0jeb1DaUzbJg4YBXA==","signatures":[{"sig":"MEQCIEQS5NA0yyA6APqapL2vVjQLlvaUTmDiHmCwebHdQkuWAiA6q/cbi6jXg/y2dGLbi9agun4MC2reDgAwTIWknggI0A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314150547.fe24e21","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23210935},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"fe24e215de1215fe8ef5c06ea4f1538cad4bd320","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314150547.fe24e21_1773500776782_0.5423580514202173","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314151540.a5ee1c1":{"name":"remoteclaw","version":"0.1.0-next.20260314151540.a5ee1c1","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314151540.a5ee1c1","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"c807dbd12a275551bb6f4acf06fdb8a86adb7e32","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314151540.a5ee1c1.tgz","fileCount":2142,"integrity":"sha512-m/vujRj78VponllVeVl6S/jV59qAKDBK1llo5TJOhm8QhFw1gDjcrNkfPf4mt7wjOA+1tpWrI4VznErUzmCMAg==","signatures":[{"sig":"MEUCIGO4a71oRT/k9VCNB7Dtcz8Pq28t5UOd7kRCR5PwPqlRAiEA9QtUrwUZTr240TBbVxHLBApocnxrZiUn4Q0l3Kc3uac=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314151540.a5ee1c1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23211944},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"a5ee1c1f1b78339dd087804d82227e8d8ad65bb6","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314151540.a5ee1c1_1773501370292_0.09155456321568889","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314153240.c3de4c4":{"name":"remoteclaw","version":"0.1.0-next.20260314153240.c3de4c4","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314153240.c3de4c4","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"01ba5f9e42981043c8af33c3c6c6d334932e47ec","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314153240.c3de4c4.tgz","fileCount":2142,"integrity":"sha512-qZy4MmMJqXc3KIYYyRinp60uMoO9IV0eJuhlx2zVUIW6omwdOhzgUQVTElVeBbZhNdyDWoe0FBxBXFjysFEYvQ==","signatures":[{"sig":"MEUCIQCmvj1fRZCUbddo3h9jR+d1ZlP3sVIAc9wqV1/qKD6LugIgb27VpCJv3IK6H+qrTRmxFwcy3snzFUhRgKXVjejgN04=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314153240.c3de4c4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23212313},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"c3de4c448baab21c080efcd71a39ecb96ac31c52","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314153240.c3de4c4_1773502388363_0.04877540677829795","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314154445.5c1ffa7":{"name":"remoteclaw","version":"0.1.0-next.20260314154445.5c1ffa7","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314154445.5c1ffa7","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"45c298fc491a6baabee9a2b05d2c79f71da726f9","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314154445.5c1ffa7.tgz","fileCount":2142,"integrity":"sha512-npCQyd4YfRH8vGiLdUbFXeUtDwElHLv4TsZkdgK6d8yA/e5y0ymX5zFF/0tLnQrkJP3w9VKRXGx4TMC+kJFnng==","signatures":[{"sig":"MEYCIQDV0NwCupQuPfiLixdkeNnXjB9vBbrRKV21Xd3rF16dwwIhAJMt+IzFX/txO33ze3MZXrJYAuKlltorwTUFh8rtv8yR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314154445.5c1ffa7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23213556},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"5c1ffa79fa39083e9df83a804baffba68b14a410","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314154445.5c1ffa7_1773503114904_0.7660613875856224","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314155430.690f189":{"name":"remoteclaw","version":"0.1.0-next.20260314155430.690f189","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314155430.690f189","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"044a764afff3e2eb24b47aaaf95846efe7531907","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314155430.690f189.tgz","fileCount":2142,"integrity":"sha512-EIeJFbnPlo7Rl+G60mGZEIokhvGyeWyiIPZPw0GYjx73sE7Xi3zPX03ThxgchztzxFvOA8TcSQsW3S+g4ueNPA==","signatures":[{"sig":"MEQCID3XYL6LRkt6xUYyt39T+OzO6awifWWc+9A2hZtJMg4hAiAVqE/XGB4EPhV/aT9Jsgesfqa5fyQ2FbvksQwXPK00dg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314155430.690f189","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23216348},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"690f189dd16528f319f6aacbcf374f8d96cbd315","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314155430.690f189_1773503699206_0.5875442794452788","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314160548.b8f63d3":{"name":"remoteclaw","version":"0.1.0-next.20260314160548.b8f63d3","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314160548.b8f63d3","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"8db4f35ae34dc3cae840de50924247f439076a1b","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314160548.b8f63d3.tgz","fileCount":2142,"integrity":"sha512-FhleMxDk37kzJ5UUE0csdY6LyXGZhYaSP/oelQIUtsB6qoyd302D0vg/c8gFxVCKKqSRG5oOciVhty6YD6KNJA==","signatures":[{"sig":"MEUCIFE6NKUtdnOefix+Tc7IyC39ETLEjW1s6//8GV6c0cnkAiEAwsuhy1/PhmNzAaRL8HnG2arTULwAyTOOlS2mYydAXYw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314160548.b8f63d3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23217544},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"b8f63d37afff44ad9db687f5ce0bbf827a8366a1","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314160548.b8f63d3_1773504376609_0.7513793042024703","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314162331.2528997":{"name":"remoteclaw","version":"0.1.0-next.20260314162331.2528997","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314162331.2528997","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"1d2e3917d4342122e31e4c37c6cb97002cd9a889","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314162331.2528997.tgz","fileCount":2142,"integrity":"sha512-K/quTdjWbUR7gh7welp+N8Sfpx2sBUWqyaYDNCdsUvfxaWUIEapx2IAZghAqdZU2Gfjc8gxY1qeZDmUDU4u1vg==","signatures":[{"sig":"MEQCIANFBbuIfrgYfJS7HIXdFkYUik1EDgJGvnhT7+hSbMdYAiA660GdgzC5SNLsK7EKM+Af6ZAHcImLHhu9p74I1O7DNQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314162331.2528997","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23217544},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"2528997e5e947df942a7e745e0f27abb167aa36b","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314162331.2528997_1773505440558_0.6283642481671361","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314163935.7eab789":{"name":"remoteclaw","version":"0.1.0-next.20260314163935.7eab789","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314163935.7eab789","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"3f67fb50f894ed934cd9e5ce4d49008b0d791f58","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314163935.7eab789.tgz","fileCount":2142,"integrity":"sha512-m6H6MTP5b4ZtqJQ/fs2ery335to+J2Rr0Q7NiEuUQdC36+LjPAB2pBHmjCqXhfj14l1jSint1Nbbd9mCO82RHw==","signatures":[{"sig":"MEYCIQDlInQUbRocnz6BFc8bdrHvrFjsB+ZmT/RV4IYhB3iM4QIhAP7PyszOT+UR+ZMT8z8v1CDe3mTjmGoABHI1eD/UseqH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314163935.7eab789","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23225336},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"7eab789a3d9fc6004199d3025512401645dc9d7d","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314163935.7eab789_1773506405876_0.9240840142767555","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314164902.f06c35f":{"name":"remoteclaw","version":"0.1.0-next.20260314164902.f06c35f","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314164902.f06c35f","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"155dd41c718ff16986f4ab25419d383d80766d7d","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314164902.f06c35f.tgz","fileCount":2142,"integrity":"sha512-UCmIlIIyv+hbu+2WIKXZy0XxWHNdABcQ9slriLsP1BovqGyHD08DvIe+qcwsXBpcLbKQGzW+Qkk/A8s3JWYgCw==","signatures":[{"sig":"MEQCIApw011yR0x/ViToYDRtjZqTIV7VqUAnLPeYkb2j1VAeAiAvOPt6MJNLiY6siQfruzKTv1ZH+wfIl27Pl3Nlp+R9fg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314164902.f06c35f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23236858},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"f06c35f015d86244c57a9af021aa2eff428fbfec","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314164902.f06c35f_1773506971189_0.16060280002312033","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314165829.bd064ad":{"name":"remoteclaw","version":"0.1.0-next.20260314165829.bd064ad","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314165829.bd064ad","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f5b55911fa54fd6361701b5bab39270845097bef","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314165829.bd064ad.tgz","fileCount":2142,"integrity":"sha512-aFTgDNpt5RK1NC9tCJeEE8KDAeoGLC0+s5/KWz0ZWbM2fZV6N3UqdOQH06psM2VuBwk67meaEvz5GO7cC7hFVg==","signatures":[{"sig":"MEUCIHmDywnjMV9QaEBqryI0z9k5E7/vp4OA7bjlmCbSzvVbAiEA0PFGCA7XlrSqoLo8aAR3m4xT1ava08Sq+c4sa0FY9Vs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314165829.bd064ad","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23236854},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"bd064ad326740be4482b37672195dd55d509fec5","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314165829.bd064ad_1773507538046_0.5098775929903658","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314170800.975d016":{"name":"remoteclaw","version":"0.1.0-next.20260314170800.975d016","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314170800.975d016","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"1d041eaf294fefdd24ff6a0ff0229f5b28b44f2b","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314170800.975d016.tgz","fileCount":2142,"integrity":"sha512-YIy+RHdcDnR832eY4II0VNWEi/VqSDwHGMvUVMumoYSnWLHw03FtJj2Hr7XnEjrTN0ZDUgd2SwVnpdpRXQLEww==","signatures":[{"sig":"MEUCIBT0Js2Mj5sGt+QqBdliuP7Ljb94kUvf1lcNUcYTOr1BAiEA8teu5yXimn/fpMISD3Am0hGRpylHVyZV5U/l3sxdh7c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314170800.975d016","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23236854},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"975d0168bfc9c03e5928924c80f8c14d24626ace","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314170800.975d016_1773508109394_0.8033208469310449","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314171805.1acdc7b":{"name":"remoteclaw","version":"0.1.0-next.20260314171805.1acdc7b","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314171805.1acdc7b","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f06b6ff86f37a64d98c97eca9b2ce68fbf021347","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314171805.1acdc7b.tgz","fileCount":2142,"integrity":"sha512-EaAobakJePqqDNzda0uERUv5JJ4K9P6SlVhAbk8dl16g09vwI+/By3aFM7FbrRanSCUENfWop9GNUBjGhoH/Mg==","signatures":[{"sig":"MEUCIQDE3x6MVjWRelo8P7xvmm9r3Bbt9P6Xac6dW2YCcXLw/QIgcmBmKWqgmPrxdNF7n1Mk/X9i+VrbimWiXquX2RmO9Ro=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314171805.1acdc7b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23236854},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"1acdc7b90dc49ef0e5a50bb51b654887969b5171","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314171805.1acdc7b_1773508714642_0.4620497054716022","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314172730.7acecaa":{"name":"remoteclaw","version":"0.1.0-next.20260314172730.7acecaa","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314172730.7acecaa","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"909ce50eff0f35b6e1b02072a4676a6e96f61371","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314172730.7acecaa.tgz","fileCount":2142,"integrity":"sha512-uPEs9BnecKVjxyAlAuvi5m2NRoVXsJ+SaS+8mubVHqsk0g57/cpZ5uXhJD9iGtHc9q7v0gfZ5VgNib1nWFLicA==","signatures":[{"sig":"MEYCIQC03521afW1KXf4Uv+KKg0e0Ny/fLEO0+woNMLf6UNhuAIhAK5ZWP7ngF+tvdXuh1vNMQK2r+71K/D8IjQ5wcwO8dYg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314172730.7acecaa","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23236858},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"7acecaa281794c2f14b1ea79c0b4cfcfac6344c8","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314172730.7acecaa_1773509279114_0.5280729806571773","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314174032.2efecf1":{"name":"remoteclaw","version":"0.1.0-next.20260314174032.2efecf1","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314174032.2efecf1","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"a05b3fd67da2daba7b67032ccfc390ecc21bb4ff","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314174032.2efecf1.tgz","fileCount":2142,"integrity":"sha512-/X20gOWzOmyZcJMq1JEdtMNJLDnlHY2S/a8kTxy7t30yz0LGvFTXivyhJNp8VKWmf0vATJxWUecNaoWMhvhz7A==","signatures":[{"sig":"MEQCIChuwOW7Wy1/Zi+c73fxnAV6Tfz1FL6JR8F273tqCrqOAiARm0VLCOAIZKiyuouOYLoQqBjYw6KpDd/Or53k75ddcQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314174032.2efecf1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23237505},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"2efecf127fa1d081665236794f2be7d856c21210","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314174032.2efecf1_1773510062044_0.3330519534346532","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314175013.f3a21c3":{"name":"remoteclaw","version":"0.1.0-next.20260314175013.f3a21c3","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314175013.f3a21c3","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"cb47ac338a3c6557d9449b89e3ad059800b1169a","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314175013.f3a21c3.tgz","fileCount":2142,"integrity":"sha512-U/qZxRb5iBLF90vnOwIiSScNZlR7QE6yIMrCErjss+uNH0qyPfESyHIYmMDZH+qY54IRMxNihERXRiJKSGIukw==","signatures":[{"sig":"MEQCIBmTUmhDREaORmjpa3kqFdqJKCI3jh34Iv51nZChfQicAiBA1iHkZ/SqvTadWh/Krahddvo117zOQ331AIzQbHTcbQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314175013.f3a21c3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23241811},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"f3a21c3d8fbdfd99d434da3abdfda667d8af7faa","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314175013.f3a21c3_1773510643207_0.673848244297448","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314180019.37b2021":{"name":"remoteclaw","version":"0.1.0-next.20260314180019.37b2021","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314180019.37b2021","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"31218f7afab8b192a2f45911a218e78fb1a73eed","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314180019.37b2021.tgz","fileCount":2142,"integrity":"sha512-NL/hbTtdwrretWnXjTAQm+oR83bSh4hV111u4ams/t0TjEH3nmr6E8roFx8llJgb6mcIkTpcrNZ17LwEa5U6/g==","signatures":[{"sig":"MEUCIG4OL2LQcwaYc4sjb2A8sA7lwkOf1nH0OP0va8LuFfKTAiEAlLhMH+RoHcKmsgmo1s1HwhRZkwlYbYRQkGhQezVNyxE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314180019.37b2021","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23241811},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"37b20211d4e38d407fbda4a5ef27427e7b083f5b","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314180019.37b2021_1773511249234_0.7657908201711086","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314184628.0b3d329":{"name":"remoteclaw","version":"0.1.0-next.20260314184628.0b3d329","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314184628.0b3d329","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"de47b002301ee5f750018fa37d19ccf7def99bd4","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314184628.0b3d329.tgz","fileCount":2142,"integrity":"sha512-9sSrNYE7aRH3pdT7ME3w2O4ElD2TEN5fHim0uByi7ZyvbA9mk6EBJSvJN3iWCiPcyy8dHkSuU9SsayfzWMok6Q==","signatures":[{"sig":"MEUCIQDB2ZQcoBub1F/GoO+et7VjjMEy9DhRcYUQKgZhua36NgIgQKhCfy1KGNobat3k0bNXXjYMu4FK2Qr/ehIj+JFdVO8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314184628.0b3d329","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23241811},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"0b3d329083e6507162a33fb80b47b9dcc2f264a0","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314184628.0b3d329_1773514017165_0.1298722634877929","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314185749.27b4d76":{"name":"remoteclaw","version":"0.1.0-next.20260314185749.27b4d76","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314185749.27b4d76","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"899d1bf6affb15327a3f737901a1a7b71b385efc","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314185749.27b4d76.tgz","fileCount":2142,"integrity":"sha512-4MOiWExVY5MyffJjxjFf6tG4a+sIDzekseQ4toUYHxvrpdVh5yrXY9jDPfdIzkZ0nxkJfHTFb7oU47QJYBTZcg==","signatures":[{"sig":"MEYCIQDopB1pHXeeaGghF9qsBjfzfq3Gcs0erM4u3fLaKYHAEQIhAPrWYRvfbyuh6qTbgirykZBGi2a9ld/BsVxhX0R5iPYU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314185749.27b4d76","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23241815},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"27b4d76beaee7424c25c1a44f3c163549b06fe4b","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314185749.27b4d76_1773514699217_0.2833080832339814","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314191040.7b23822":{"name":"remoteclaw","version":"0.1.0-next.20260314191040.7b23822","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314191040.7b23822","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"67aae8e14a7b3ef1314a3764847594bee44b34af","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314191040.7b23822.tgz","fileCount":2142,"integrity":"sha512-iUsOsHBQDetNgRWUhgs8T15Zfi/faqEp87jp8tKILRBz2DcpEXnqcNrpB/PvlTa2WX5UgeElB0ENjygZ4ALb1Q==","signatures":[{"sig":"MEUCIQCY1u5928oAW1zLK1YyzL77kKBAL8J86aGWA0IctuSN+AIgK23D9YYgM6ttpynZ7vUzIJF7KHWLpM6RhxGimqZ0uZo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314191040.7b23822","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23242501},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"7b2382276fbdcf649cfb791bd905e5d295c406cf","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314191040.7b23822_1773515469862_0.384847577914728","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314191959.561a8ff":{"name":"remoteclaw","version":"0.1.0-next.20260314191959.561a8ff","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314191959.561a8ff","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"c92115e6726955c156c9013ae0d4d06cacc3b417","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314191959.561a8ff.tgz","fileCount":2142,"integrity":"sha512-/z5mNC3K1bpUhR7eIOXMEQ21M1tv5RzEZZAW2f2pOERGFdCEGm9Tzw9zRhKfLc1+KD7WGtEhEIYY9abcUIpsqw==","signatures":[{"sig":"MEUCIQDTW5NV6bO1Z/Gx9am+F6FbjXG/aRTm9+9KHK3hhhPK6AIgeCIpJgkAbsD6ybcCSo2Uc49QPF0YZCE5CKNh6TcK6Ec=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314191959.561a8ff","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23242502},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"561a8ff302652b7fe92772d88ea3646d9bdc9b34","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314191959.561a8ff_1773516028987_0.7242609461527907","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314192948.40fa6b0":{"name":"remoteclaw","version":"0.1.0-next.20260314192948.40fa6b0","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314192948.40fa6b0","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"79799e7d646866db069eaf3a7ed3b9af638fa6fd","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314192948.40fa6b0.tgz","fileCount":2142,"integrity":"sha512-+7nVDf5+RL4HOK/1curEbHA/o6+WqINVH7H++r+CjFtr0TEBI0UpH+2C1Dvp2bOpqtUKx/mBPQhB41FmrI9+FQ==","signatures":[{"sig":"MEUCIQD8Pv/dj5RydTFhZih2KQs1Ssui+sjI6KRqE2PXAKEGVgIgEvwNVnnuo2llxin+2UcVXQUKy9yKJXCBnQDYRqzKAeE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314192948.40fa6b0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23243269},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"40fa6b0b283aba5f101a24cb35ae6af49433a5b9","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314192948.40fa6b0_1773516618565_0.8610746157408937","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314193933.7535dc4":{"name":"remoteclaw","version":"0.1.0-next.20260314193933.7535dc4","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314193933.7535dc4","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"09971507cdec1e036c7689868583bf2b89e7a563","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314193933.7535dc4.tgz","fileCount":2143,"integrity":"sha512-ELq73zSxi/KoFl9NjS4oROCwq1US9mMbvE39NoXaDO2FTGsV3t41w0CGrpwRUfF7jvEC4UIgRh3IQOOPdwfmPA==","signatures":[{"sig":"MEUCIQCSYBjGfMGZqUOw0wxrSKVy7aevqbQShXDjZBoGx2UPrgIgcHru0+GeSOTXzQDptMM19EveRFW1f3+H+FEUaAtH+ms=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314193933.7535dc4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23243719},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"7535dc446d0deea11b4515a7b6ce688a3dc6fee5","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314193933.7535dc4_1773517204366_0.7057842771314999","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314194830.effa20e":{"name":"remoteclaw","version":"0.1.0-next.20260314194830.effa20e","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314194830.effa20e","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"323bad0ebbc0336bb0074bbd54bfe02ee69bc375","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314194830.effa20e.tgz","fileCount":2143,"integrity":"sha512-bM6N7ArB8kEjNh19q3MwNCQCHRHQm2L8ngV9kYwRjhdCdUPMvUUrQZPqYKo1vRM8e3J7vLzMozop9ys7VgphEA==","signatures":[{"sig":"MEUCIFgNzd1m5lhYffDwYs6EbqF5yZbG/M6OjaRnFF15YIXeAiEA+/stgjUpPcHrE0U/qo2w1VlIucL952+OGRkP6060FmM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314194830.effa20e","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23255145},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"effa20ecf399406050f0ab5d7aac1f6cdcc7c9ac","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314194830.effa20e_1773517739530_0.5684795700048593","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314195801.513b69b":{"name":"remoteclaw","version":"0.1.0-next.20260314195801.513b69b","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314195801.513b69b","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d969848c22f8ef8c1721a27df02ae79b89043c20","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314195801.513b69b.tgz","fileCount":2143,"integrity":"sha512-YzFddVRu6Zhll5ZwpdxkC89msaWd6wJsE3to40AZhN7Bq9mo9C9pONl2swBNbqF01Kn79ZZBt/dcrsin5bWsyg==","signatures":[{"sig":"MEQCIBxZTTB8clqe+U/UTxQqg9IPscQE2EzA1GEupv5ak+1sAiAFZglzzZEcX+og4AczpBXjdwLKRFrHFCI7qT1nWq/tXg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314195801.513b69b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23255157},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"513b69b87d6409dc94d53c805e8979690acfc991","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314195801.513b69b_1773518311468_0.7550120106350628","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314200945.89b5ad6":{"name":"remoteclaw","version":"0.1.0-next.20260314200945.89b5ad6","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314200945.89b5ad6","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"884ab8d5f935e6c7a88f44449dd14798ec4b969f","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314200945.89b5ad6.tgz","fileCount":2143,"integrity":"sha512-UFt9Go+XVPWyTf6AMXqhf8Zgv0oQOp1zKwopips42Ua3/kr6aCS3ejHk7A1gXE+dKH4mExxR6J3YTaBZZbi8RQ==","signatures":[{"sig":"MEQCIHVzAnduRqx8xoCBXXvjrynw1b5/PEVYLQnUAlVXYibmAiAw1AvoDSm28K8i2yOlhOYBjq+z6RJ8kJYcV4swYu1DcQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314200945.89b5ad6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23255153},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"89b5ad6c36296018c584e2ce440155798fa50ea2","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314200945.89b5ad6_1773519015182_0.6680324213243181","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314202451.a1de7b5":{"name":"remoteclaw","version":"0.1.0-next.20260314202451.a1de7b5","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314202451.a1de7b5","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d4d7e02cba99ebf6e9e2575a2d5fec3854ab80f6","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314202451.a1de7b5.tgz","fileCount":2143,"integrity":"sha512-en1mmmNhHA2D2IMhWil/SYg3tCipzrMI5aOkCEG6+E2faz3GDmuihHLkgOkIqQRe2ku86PfLHbOVoSLYxCfJ4w==","signatures":[{"sig":"MEUCIQCUXn0IgWCV13Cq3keiqYRr/ChM5oz62l1L0iqAMU8saQIgfRz4jdPL92oczoASwECEBrpnHzHk4EyqSs8QMHPbQoo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314202451.a1de7b5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23255144},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"a1de7b5c38d698ae3dc8681fe3ed436778c46ba8","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314202451.a1de7b5_1773519919906_0.9840164130299465","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314213831.f3d55aa":{"name":"remoteclaw","version":"0.1.0-next.20260314213831.f3d55aa","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314213831.f3d55aa","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"52fa061f7764729be0114bce4f799b230de5ec3f","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314213831.f3d55aa.tgz","fileCount":2143,"integrity":"sha512-/Aw/rS0Vsauc4I4z7zdY2e/89XTcl6i1aUKCBafwxL4jNeOmjqKI3LfHCj35D0jN8Ir40f8sMzetzpjxkhsXZw==","signatures":[{"sig":"MEQCIBxPG8KGVZrS/mlCq/QVoZV2pi62Q6eMB9EgMyWouPAuAiAcYfrelUWol1mxULR8JR64FZI73hEgaQPuVrhDyAr04g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314213831.f3d55aa","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23255157},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"f3d55aa54c35e41396b56b08aa9d497fc4f668e3","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314213831.f3d55aa_1773524341856_0.5553657579100948","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314215412.0d8c653":{"name":"remoteclaw","version":"0.1.0-next.20260314215412.0d8c653","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314215412.0d8c653","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"5492bbc20ea3fada110e64bda41d232f392a96a4","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314215412.0d8c653.tgz","fileCount":2143,"integrity":"sha512-WsESLcuEcuQSsl8CehO4nVmuazf667TRbkd878hxsalNjFPOcylreNFplh5+RszUjHdnC5LAzxAUlxcXH5VFMQ==","signatures":[{"sig":"MEUCIQDGcYebMWwq71oChCfd8stObnF2yAs+eGdu6i+2WaAoEQIgNXnOfgvq4U+E8u1DdrYW92kjra7p8PDA3inZG/Y3Sf0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314215412.0d8c653","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23255157},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"0d8c653817ef8435aee017c3418c7e79603c99a2","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314215412.0d8c653_1773525286575_0.9703305657663726","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314220412.d06da3a":{"name":"remoteclaw","version":"0.1.0-next.20260314220412.d06da3a","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314220412.d06da3a","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"c77945d42cd26be6530f0f96ebb264b21d4351a4","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314220412.d06da3a.tgz","fileCount":2143,"integrity":"sha512-jAVsBZKDbn5JIZ+HGRyxSHsAx7VDXR8e4BNGc02GFSvX3TzGR05PRoNbkw5V+AT4QtZLMWBWa2DVNAjPm4wLew==","signatures":[{"sig":"MEUCIQDSzw6awvf6k4YUUUQdDAuwao/wlrTP5lIaEQUzQU+EfAIgEhT4B8EvJ46mQhJBUPWXig4cH84v9cyLhOiKiCr3Xic=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314220412.d06da3a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23255153},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"d06da3aa42a396ff2d08f21f66532c369b63a463","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314220412.d06da3a_1773525883084_0.41279797290445686","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314223106.b9ec14a":{"name":"remoteclaw","version":"0.1.0-next.20260314223106.b9ec14a","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314223106.b9ec14a","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"7a9b0304976faf0d7e4a930763c6ccbc9ebd44e5","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314223106.b9ec14a.tgz","fileCount":2143,"integrity":"sha512-6tPQuQq+ojD0plyD/mYRGbq43XJ4gCbYGaq+b89RaprfYxz8N8Ft+4O6+BY+3f1gOLn3v6/BZmteBGlRDG6U2w==","signatures":[{"sig":"MEUCIQCMBKQ+6vUNjE+sWfNO6tmPCGZe7d94rb7FdBgpagrYcQIgcD5tivno2/6xd/IqAggbtT3X+MyakE9WRdx1C3Sx6rg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314223106.b9ec14a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23260583},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"b9ec14a2eb80020d9793ebd278f5e50d18cecf80","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314223106.b9ec14a_1773527495916_0.7941143491870004","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314224038.6f2ac9c":{"name":"remoteclaw","version":"0.1.0-next.20260314224038.6f2ac9c","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314224038.6f2ac9c","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"dc96be084c1d74016fdfa46c205af519ff19402a","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314224038.6f2ac9c.tgz","fileCount":2143,"integrity":"sha512-ub+zwrIWXnN+UbIRHbRUW/cLdyyPN0QDUWxhAaUpR7A/8m59x0e3wfrL+IvGHv2RUQNGZM6p5oGVduwrHfr0CA==","signatures":[{"sig":"MEUCIQCN8m01vk4ZOU/uVcGnSSSSJp+MHOrHl7UknBlqC7lJiAIgB3i9wJayZJRwb+94BjkwXXrMmpVnJhGuGALDLJ2h9s4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314224038.6f2ac9c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23260583},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"6f2ac9cf916c35c98ceae3fd0b0f3e8df86170f2","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314224038.6f2ac9c_1773528067597_0.2979770376231108","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314225213.baf3742":{"name":"remoteclaw","version":"0.1.0-next.20260314225213.baf3742","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314225213.baf3742","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f154b4b8f40660d093e02710ad573c0b5d3e0eb8","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314225213.baf3742.tgz","fileCount":2143,"integrity":"sha512-NZh97Oe+svWGmujvJPBeC59qpetankrzsKrt987U6NYi1Ljp8x0GHgra/2E7D5/2Z1WfKF6Y0aJnktmsQzjL7w==","signatures":[{"sig":"MEUCIAh7xmQevjwt0EAqzwqHWhELeEFTbmBd6LZlTv5E4R2OAiEApUyvEi7E6gGvtIWm/CJqZhpbgMWdk8lqtq2X3PDz2Gk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314225213.baf3742","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23260578},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"baf3742f2d916046b465faa110f33e218c42ed32","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314225213.baf3742_1773528763146_0.07280366509625935","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314230147.b506012":{"name":"remoteclaw","version":"0.1.0-next.20260314230147.b506012","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314230147.b506012","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d5c859c278f95b41b29171bd4fcffa30240bd172","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314230147.b506012.tgz","fileCount":2143,"integrity":"sha512-N5Ud04ycOrwEJZ3osSLJi8gqYZq7Zo2hv0dAWADsGlZEP7/tFzFhQ/5gnhkf8SfRSH5AUEmFdk1eiqQw4ADy+Q==","signatures":[{"sig":"MEQCIERp2OzeyKV4WyhHUdiYxvPAreezHEjQd2k1r5NjKQGsAiAQfyhF2KHbVorPBlvaH6VY8zpSCoko+/5WzdTE5fJALQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314230147.b506012","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23260579},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"b5060121a93dcc1b38a2181b1a9ab2cb089746ca","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314230147.b506012_1773529337455_0.7023128410027266","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314231521.4e72542":{"name":"remoteclaw","version":"0.1.0-next.20260314231521.4e72542","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314231521.4e72542","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"689d0eb2c8031a70a70198f5358607687991620b","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314231521.4e72542.tgz","fileCount":2143,"integrity":"sha512-HM4Phyp5+AEXzjEIKk5Du9wU5wDRWdKUv55b0NmcFU6yyY9n74hsVnJ6lAeez7sIK3gcqEVPcRcQ9X2X99j4Bw==","signatures":[{"sig":"MEUCIQDm3U57Tb3bE9KL/yhF6H3CgW5Ehu5B04JjN9hi4c67PAIge0aIo/FPR/HqY+YsgvTrQ1mm/0Z8JxqyB6pazTrzkUY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314231521.4e72542","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23260583},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"4e72542dfa3e7f4fa6741a6781de8ea558aa720f","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314231521.4e72542_1773530148405_0.4541822891734668","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314232703.fec614d":{"name":"remoteclaw","version":"0.1.0-next.20260314232703.fec614d","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314232703.fec614d","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"54dfc355dbbd1b5e02326f599eec377fbe202bae","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314232703.fec614d.tgz","fileCount":2143,"integrity":"sha512-kl+5ueDxVJMfk97g5Hqfj8pdJccI5bM2nCLNXie6ot779WrcoNayS4PbLaIoGlLLUpGe9iM7FEdcrrvQxdhfbA==","signatures":[{"sig":"MEUCIQC9mUjvs8eyx/xWh/LEqQ01bPb+RMbFNiivNxAmCb22xQIgIzm9rk49ZRTNqe7hoCCWr2QlqoqJ6jezCtZ+7u06B1k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314232703.fec614d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23260587},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"fec614d7b7d230846df1398ebda614eea80bc1c1","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314232703.fec614d_1773530852656_0.5246745503605397","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314233651.f036ab8":{"name":"remoteclaw","version":"0.1.0-next.20260314233651.f036ab8","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314233651.f036ab8","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"6f03fbf676ba75d83d1a45103e976a822307da92","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314233651.f036ab8.tgz","fileCount":2143,"integrity":"sha512-AAWLuzrD5WXi8Q7FrHT5RovsjyZDAZFYvRVXyV9VbzP5b79Hob1Lo4171bzTkug6v1vqWrsws111ioRbw1AUBg==","signatures":[{"sig":"MEQCIEMPBf7rt2V50Lfu9SoSLIBcl7MDm+WCVmbWwd3KW9q1AiBMawPTehNFfArpfslAwGxfjSE2wAlKP9yg6teIhq85eQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314233651.f036ab8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23260583},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"f036ab81a16a63a5e4a26e02aa5d09179646e9f1","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314233651.f036ab8_1773531441834_0.5396361974321626","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314234549.f73f12b":{"name":"remoteclaw","version":"0.1.0-next.20260314234549.f73f12b","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314234549.f73f12b","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"c55f23030f9c49025c9ef338659310d66b07adbb","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314234549.f73f12b.tgz","fileCount":2143,"integrity":"sha512-K06sKjpghSlIzwGrZNVHFmtmGaWGtaiOY+ewKAlmeRdwlJfp5iUzz16ea/OCiyE7+wPt3m55gyOUNVnf9IvmWw==","signatures":[{"sig":"MEQCIDa1wwf5ITFwcDwnslHigQH6WsQWc13g1+mjOtv3LcK3AiA2yuT6WYXSMXBlByqv48SbH/A1Uy14FQFnkweeW7Vj8g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314234549.f73f12b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23263087},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"f73f12bd66d0aa3c6de7a017d7f32bad4feb8867","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314234549.f73f12b_1773531977847_0.245507914797783","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260314235515.9f5cae2":{"name":"remoteclaw","version":"0.1.0-next.20260314235515.9f5cae2","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260314235515.9f5cae2","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"0ee4cdb79d3c79a6d7b001d3990a59124f70f09d","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260314235515.9f5cae2.tgz","fileCount":2143,"integrity":"sha512-Hwc10aT+q9YkzshmfCpDEU7ovUdxRIfYSruucSjaftZytmEIkawkpsuHP/QAOLlq7ZTCjzcEfj/zl+lBpGeTUg==","signatures":[{"sig":"MEQCIBjxvN1WXDzdbRd+vUer7aKud66VxUGyToMlIhTa9WUjAiBUma1SS0kBRfJZoeFLAO6J0HOfHmTYXDgkRS/IvZXPSw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260314235515.9f5cae2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23260588},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"9f5cae2aa61776de33ce04c303a2b1a7deefbbf0","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260314235515.9f5cae2_1773532544306_0.29167037207447133","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315001443.c709e0d":{"name":"remoteclaw","version":"0.1.0-next.20260315001443.c709e0d","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315001443.c709e0d","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"4a0a826b179894d12cfbdfff150843999221f625","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315001443.c709e0d.tgz","fileCount":2143,"integrity":"sha512-xgZVKdEXgrKz1alOdM8KoEp4mGtG3yVwcHavTepusFg80iq9kuJQs2XobywvIso11GS44tHsLEqin+H7f1G/2A==","signatures":[{"sig":"MEUCIAtjUSWrwRFrvxgAfoQ9dwPNF3SXo7IsqGnx+zdVqyMWAiEAvAEWUsltxKB07tRjZa1PyEbAd58MnC0G+Fy3BMvlP8M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315001443.c709e0d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23260583},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"c709e0d866ba831d4b2f14e6eabf9ba86ae02048","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315001443.c709e0d_1773533712645_0.6877061761677858","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315002428.db46f37":{"name":"remoteclaw","version":"0.1.0-next.20260315002428.db46f37","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315002428.db46f37","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"197f74ac47c0c5f0933e2a8ccee9ec249fc7c580","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315002428.db46f37.tgz","fileCount":2143,"integrity":"sha512-ODl7dvRXiOXT+RYnEVOVA3Kzip86Qi/1CiJRvmcso33PTww1dHaXz+YY8s3G/i91Puk5ed+0utTULc4a5aH3OQ==","signatures":[{"sig":"MEQCIDAceJhHfPAnWEiAjg7kplCHXn8J0ARxRDp37LRVAQN9AiBkYn0jME0CDqOfKMMsGDCp5Nl/fypc5cikC/+2LvxKNQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315002428.db46f37","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23260587},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"db46f37f0f815faed5e5e733257717f86ae8a6a0","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315002428.db46f37_1773534297818_0.05985162967357294","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315003403.dca0f1a":{"name":"remoteclaw","version":"0.1.0-next.20260315003403.dca0f1a","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315003403.dca0f1a","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"732e8549f73d609c043d8b7cb40941596eb8e2b8","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315003403.dca0f1a.tgz","fileCount":2143,"integrity":"sha512-yGeQM7rqAwr9j26b8IY2dgCpoeSo0L0hnLWv7X1OkmH+iN+pAtpGLg0kL+9PvfxixAlu06juIl/PTGjBWfou/w==","signatures":[{"sig":"MEQCIC/+0Tdz8gyktQHp3lt+DFhsgyyROxtvKfDWZjBY/OGaAiALv/x90G5RjCVP7eSCnWwHXaAnzok5KSUAs+OY8ac3Fg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315003403.dca0f1a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23260591},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"dca0f1a0a33772016774122b3afd2f5ac46b8ccb","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315003403.dca0f1a_1773534872429_0.6899390768343554","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315004339.300feba":{"name":"remoteclaw","version":"0.1.0-next.20260315004339.300feba","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315004339.300feba","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"90fc69e1d181879aca39edd77dd2b46094e18648","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315004339.300feba.tgz","fileCount":2143,"integrity":"sha512-X9gQC+7lTTf1pGyYamZSuAjsb2Esp8+HC5ZhvRYR1DO9/P5GCrQD4h+DbhQFy+Q/Eu1BzlrbdXt7CCp/5jWiag==","signatures":[{"sig":"MEYCIQCOWUujmZIttmi8+HwmgJCgMc26ps0K3304j+xBBnyYFgIhAP5Vzs4dFErvkm429hU8oUh8UTaiAp8AfVgjJxYI0vat","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315004339.300feba","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23260583},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"300feba1b9ad17fe58e6adc1fb0a76fbf72baf17","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315004339.300feba_1773535450893_0.6266999214541833","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315005411.bd4293e":{"name":"remoteclaw","version":"0.1.0-next.20260315005411.bd4293e","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315005411.bd4293e","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"1bab5321e4c1ecb33585d735a9b610420e2b3c4c","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315005411.bd4293e.tgz","fileCount":2143,"integrity":"sha512-i/6B9Z/bYow/9u0X3f9Wts9ccdU5DYF/A3mYo0Vqx3+hveov7kLH80Nda61HNnvifTsPSlUeScHuF5RyLlwu/Q==","signatures":[{"sig":"MEUCIQCeDGHj++sNnxCQYVFNCujn+4X1cfCfVrMvhB/UG8f2gwIgH3H8KrxEw/LSjWYqeCTtVkY4LuW9xe4ZIX4yTmUWf9k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315005411.bd4293e","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23260583},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"bd4293efaadc2afbd3809bbe8c21f70cb556f0f1","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315005411.bd4293e_1773536080322_0.8232124826613205","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315010359.4182301":{"name":"remoteclaw","version":"0.1.0-next.20260315010359.4182301","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315010359.4182301","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"425f9254ee281d4f42dbdabbb2e4775c16de5e0a","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315010359.4182301.tgz","fileCount":2143,"integrity":"sha512-ITSPgdoLkNcIU0r8Pa7z1AmdNjhmMhQS3nsUoFSjCOKF//aqJ1bYS9p6lIyMFEzH96ID33Qjf5yhswL9LJtBeA==","signatures":[{"sig":"MEUCIFwLPaeRZ6IEkmm/VNm7quhLgx7REPJ62d/ErvMIaCxaAiEAnOha7TKUQWHEArM1bquEWW2iMOOyeakQ62J3VX1GHg0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315010359.4182301","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23260583},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"41823018888578dfa28a73ea40d768cdf4dc9247","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315010359.4182301_1773536667015_0.974125384120013","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315011834.8b8d470":{"name":"remoteclaw","version":"0.1.0-next.20260315011834.8b8d470","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315011834.8b8d470","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f1f3ca6798c57d39156402a220b5b04c2696ab4a","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315011834.8b8d470.tgz","fileCount":2143,"integrity":"sha512-Rz8OsEXvDGniZKri2VLi68GZs14ORPJs0lfF6I1ww3S9Cj8jS33yj0yqeWl5VtCEOeqp9jFesz+CByNsukuMoA==","signatures":[{"sig":"MEUCIQDCc1dZFpKvIEbSKDK4RG3EKNz8r122bERcqs7lmVn44QIgNS85guUXVfgWlZ4w9MUktL6ksxB+GIhPqekvfIb7Eh0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315011834.8b8d470","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23260583},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"8b8d470b5cfb2e5b7f0db922b339ac64c40d9db8","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315011834.8b8d470_1773537544083_0.3438343579165073","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315012850.5dd3dc9":{"name":"remoteclaw","version":"0.1.0-next.20260315012850.5dd3dc9","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315012850.5dd3dc9","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"c8d2a6b5f7279738de2b8b81365946dcf70897ac","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315012850.5dd3dc9.tgz","fileCount":2143,"integrity":"sha512-1l9N8P+GW2KUW1VFlJe8astQesW1YY62deohtNppFNw43GHsEmTPgb8MQvTg2b+enAhOwX8HfkKVQaokxhTWHw==","signatures":[{"sig":"MEUCIQCwQgXySEpZt6IRwgg3xLn+cozRURgXAqiIdfx69EnG7QIgPyuw1LhKLSzsVCgUJqIv2LQvmeFH083CeQ+QoRcSolo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315012850.5dd3dc9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23260587},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"5dd3dc980a472f09a18b201c4e3981efc30e6709","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315012850.5dd3dc9_1773538160672_0.6638938322222703","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315013848.6a545b8":{"name":"remoteclaw","version":"0.1.0-next.20260315013848.6a545b8","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315013848.6a545b8","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"0eece4858ff76cf0b06b93964d79e168c41acea0","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315013848.6a545b8.tgz","fileCount":2143,"integrity":"sha512-NlHMTXhQWWGozpd6f8O4oGyjtczt3cYz6ywg75IDEzYBn4ZMwJhxqcFrZYnrH0Ui1qpAKMKpgxtGRLWec3j3GQ==","signatures":[{"sig":"MEUCIQDvvec2yvhJCmjvNASgmEtd5Tw6JTYSCYArgNZX6ADIEAIgWojIDbDeQ5durrPic98PdaThqQ/xzdT9bYrkfhI1CTY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315013848.6a545b8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23260583},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"6a545b829d6d18c7c1e8f8692e448512248893c4","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315013848.6a545b8_1773538757315_0.8585336028851074","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315015105.622cd24":{"name":"remoteclaw","version":"0.1.0-next.20260315015105.622cd24","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315015105.622cd24","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"4e9219ffdf4e8dd9b7c7774e14e0fca8425d3cd6","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315015105.622cd24.tgz","fileCount":2143,"integrity":"sha512-X9RT/VFwyvTPLl4NDK91xiYsUrS670kkMZWKKzeaUi34i9SKBp/A0RRU5JVNvUp+lUivRw3xtEMXUnXrLVvcow==","signatures":[{"sig":"MEYCIQCzZ+fvjv4vMfJKkL2INnxkb388wq5FBDbjB6FMTrzdRAIhAPsL1NhPP12W/XXaSJA4eBp2p4e2YuyE54ePTosXrhGR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315015105.622cd24","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23260583},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"622cd2409fb6939e35662d2bcde0160a5a18cae2","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315015105.622cd24_1773539493980_0.4680060879381309","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315020044.243cf5d":{"name":"remoteclaw","version":"0.1.0-next.20260315020044.243cf5d","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315020044.243cf5d","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e9d7ca41dbbc4ef13809da3ad156a39926465a51","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315020044.243cf5d.tgz","fileCount":2143,"integrity":"sha512-dKh3yb3mat/LBoQ64EUv1XXjEVw7QlxtuotIKe0wdEvvU4/kmTG/f2pGaGxbBJyGdRrxQSce71kOlbLh0vgckw==","signatures":[{"sig":"MEUCIEKbrsgrXXyEK3gXCMYHJ4pfFtBmyHum/010o1T3ocu8AiEAoaXOPMn2j6PNI7JexPSvvY7zRqeS3kyzBDxbQHb12Gk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315020044.243cf5d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23260587},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"243cf5d49df56345a040a5ec2c649ef3a15207fd","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315020044.243cf5d_1773540071865_0.722216667139975","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315021925.35f5f50":{"name":"remoteclaw","version":"0.1.0-next.20260315021925.35f5f50","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315021925.35f5f50","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"db6d38f9d5d64cec6d77522883868da6d4eb458b","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315021925.35f5f50.tgz","fileCount":2143,"integrity":"sha512-C0OcN2Y1eLNECI9WbiFRz4BdVZ+3jiTgYWPwqGy+ChdokwQ27lNXEe6IfXSeRUgtVSBMadGHaR0yttnrKCtABw==","signatures":[{"sig":"MEUCIQCse6Vf5vvuErKwTfYdMdwePBlGbrlKPhJS9jomSN3HegIgauPc1w+Tt22X5LNXNbCoaW04siOfXhwUVt6rwouWVgM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315021925.35f5f50","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23260592},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"35f5f506d3be0e8b506d4bf8780c434e7cf92f96","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315021925.35f5f50_1773541194546_0.5849101609703689","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315023201.634104b":{"name":"remoteclaw","version":"0.1.0-next.20260315023201.634104b","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315023201.634104b","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"120169120bc59e9ca5473e39b05a5849a64dd7d0","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315023201.634104b.tgz","fileCount":2143,"integrity":"sha512-eY+mzoLH0GrmiHLNnhP9jdWuUHIVsr8x6WKwqpM5Bn6qaPs3wEigMM1kf+4LpNFy0JI9erCSkiW0HJN8h8qtAg==","signatures":[{"sig":"MEUCIQDD1mKgTDY3FAllWaixyXNbPQld4agRjApJd0n8oWdn2gIgB49Qc+7Zxa1llInHIuqwwEp4ulh5nZw08YgrPsebevA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315023201.634104b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23260583},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"634104bc78b5f2af98e057134acead136cbcf86b","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315023201.634104b_1773541951627_0.9046567210304117","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315024252.fd9af69":{"name":"remoteclaw","version":"0.1.0-next.20260315024252.fd9af69","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315024252.fd9af69","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f7fe346ee83e0260cd865b00044208ca4633dbc9","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315024252.fd9af69.tgz","fileCount":2143,"integrity":"sha512-yQYUaUHrq9bs0ofFJKIb8yFmQAbTFH0qpb2k4W+/mvAsT3Gk2YanKXX7kbwsD7UmCnZrY/01SrwzKIgH4o+cbQ==","signatures":[{"sig":"MEQCIBAWb4/XOqsXoLUyJq3lpM8PPw/yi5fY1TYjq/dZvRltAiBnFaLJ1IjGf0GpZ+MwR7z0kpv7E4ZUaxmErhz4Vpq4IA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315024252.fd9af69","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23260583},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"fd9af69d57e1a554b08b7a847dc7d5d4a82cf097","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315024252.fd9af69_1773542609996_0.7867378180184781","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315025216.176ebcb":{"name":"remoteclaw","version":"0.1.0-next.20260315025216.176ebcb","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315025216.176ebcb","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"a2eee139a8f400d3fce51c91d411410dc5ecc49b","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315025216.176ebcb.tgz","fileCount":2143,"integrity":"sha512-Hg6Nw4JZ1H+Fp6U2ctbsKSEidpYT+pYvpe6/ZrbnPGhPgwPuxLSswfYbzpy7eoLI+/cXzGp3drnStGlS4c1ZUQ==","signatures":[{"sig":"MEUCIQCYPwcPvoE3fqT/VNln41yEx41Dm9lfEMJ64+8LWw7wyQIgdivAKkXb8E8QidwCSi9OEDMZL0Sn0J5AUoiINS00qYw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315025216.176ebcb","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23260583},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"176ebcb3e71190bebfe1a6cd5751516b6deb5c47","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315025216.176ebcb_1773543165580_0.41658608276601106","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315030154.d4d69f4":{"name":"remoteclaw","version":"0.1.0-next.20260315030154.d4d69f4","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315030154.d4d69f4","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"dfa4618b45aa98e323856d9d34cff5fba60c60b7","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315030154.d4d69f4.tgz","fileCount":2143,"integrity":"sha512-C5SWpDNQOf05xb4nN9AP3oL3DJzU6dIVziL0DpHm0dzjlFGfCf8Mo10OmAIL/olHmenir1z5E9iwKnPspVrCrw==","signatures":[{"sig":"MEYCIQDld3py1bFbasVOrCkP+yjJe9qZq+gHPvNcAwMfUGf74QIhAKOsryVOy40Tdo4Ajglt83LcqjpEkM/6N5gej01jolBy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315030154.d4d69f4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23260587},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"d4d69f47b92f2d0e55a4f1b2067581989ccdf152","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315030154.d4d69f4_1773543744363_0.8527226929793743","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315031752.71eedd1":{"name":"remoteclaw","version":"0.1.0-next.20260315031752.71eedd1","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315031752.71eedd1","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"5862ecfefe1ac8f2f15a0200e426274483817389","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315031752.71eedd1.tgz","fileCount":2143,"integrity":"sha512-+X0C4IzMuNiOlTy2JT+7frbo5gCc5yXAsMOa7F3u7EumQZRlZ6SRP7ity3xo6/eEkcmQU4pxAa4hGl/eaPgusg==","signatures":[{"sig":"MEUCIFUBasdji5r0sUJK/renHLdwFndJo1zkS5mCVzRQucl1AiEA4LKmKwdKKSmaj3FuvY/2QVC0KVsdAyIVECEDjULCVMM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315031752.71eedd1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23260578},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"71eedd1fe688441ce31397ef7fdc7f25d869ee78","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315031752.71eedd1_1773544701946_0.6363009940803568","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315032741.ffab74b":{"name":"remoteclaw","version":"0.1.0-next.20260315032741.ffab74b","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315032741.ffab74b","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"82e8ad79e8acc95bb7c9e1444921496e5f300596","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315032741.ffab74b.tgz","fileCount":2143,"integrity":"sha512-Y2R0K+N+PJJfqWHnyPA0DTQ1xcqLe5xk6y287BU9WgCoNolJNWtvIHiZPiJeg5GtYZOEdxNC7MypQtfFzc23aw==","signatures":[{"sig":"MEYCIQDZoBz4xwDDKWzU3MGnwSIwfF82g9MjC4N75aRLUjwZFAIhAMwdkbObrkurXX69wKvTFRZQmyOTDJ0hmPg70vZ+NVjW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315032741.ffab74b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23260583},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"ffab74b4d9414c129102346669f21d4935538e89","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315032741.ffab74b_1773545291821_0.20618716464893505","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315033732.69b9302":{"name":"remoteclaw","version":"0.1.0-next.20260315033732.69b9302","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315033732.69b9302","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e5f4b4762f1d85ab08eeab5067ebe6dd7c797267","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315033732.69b9302.tgz","fileCount":2143,"integrity":"sha512-mtCQmgtTxHx/ag3z6dfqHUiNdaKDIdNcWYko+zDh0VuuRtJOHDZTGChgMzZRRdGvBhFjJbOuLO028shf8cPVhQ==","signatures":[{"sig":"MEQCICqsj3TTxcbYn8Scb9X0Ha5mY6EzRZeYnvtcXwSI+9X0AiAWwJqievD/kW1gfWhB4TRfkoHnimjsfEDBL5B5hovENg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315033732.69b9302","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23260583},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"69b9302b8367c514ef763fff0f859a022cc2d9c9","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315033732.69b9302_1773545882942_0.29273538033558877","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315034707.c856200":{"name":"remoteclaw","version":"0.1.0-next.20260315034707.c856200","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315034707.c856200","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f0b3c77d91f94daa89f35a155412f2afc1718ea1","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315034707.c856200.tgz","fileCount":2143,"integrity":"sha512-6kMSb/9ZYOltsfYJGPgK+gh46WHIRnUAgd5oNYDHnzQhgHQUUmtV9FuTNG0JmIlCvO6fRlZrQM2rrWAwwkjCTA==","signatures":[{"sig":"MEUCIQCfYv4RyTSpehqXVdAZIcVyj6NyWvapowq2CNS8LSUkqAIgT4ODsdcxkaLmns0NxZzlkLKPKatNAGuKrvsAxyeyziU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315034707.c856200","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23260583},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"c8562008da90f1ef64aedd1a71b8fb640f8e3d41","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315034707.c856200_1773546457635_0.3892346229786847","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315035637.8c6aef5":{"name":"remoteclaw","version":"0.1.0-next.20260315035637.8c6aef5","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315035637.8c6aef5","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"10a76fb5d16d1e84df7759c43c7b2f2d02833878","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315035637.8c6aef5.tgz","fileCount":2143,"integrity":"sha512-gHcbHIlhZUlpRHLnY1zoGW26JJgMBYRJ+KeZKGGYS53yCp9OT4CmxyRoU7SjHBZKXHnVKpe6pTL2GM068xtyfw==","signatures":[{"sig":"MEUCIBSaG1Pg9kWwS46GgjDvXRl90zRMEWRr7Rrgt0SgMnpkAiEAoS+zXCV6j0+wQ8FNebmEKGoln6tSV4jd2S98kiNcxhE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315035637.8c6aef5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23260583},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"8c6aef5329f4ee807a8c7bacb538b01d560910f1","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315035637.8c6aef5_1773547050638_0.22767395452908556","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315040641.5488026":{"name":"remoteclaw","version":"0.1.0-next.20260315040641.5488026","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315040641.5488026","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"b87a468397c7fbc4ad9d89611e85d03700fcf0a7","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315040641.5488026.tgz","fileCount":2143,"integrity":"sha512-76+k7idR5mfat956Noxvsy3vbVOxBdnjfpIA+NK3M4bG3FjuqEkmiAJWMB1ThLpzJ+E/beAdovrdkwe6azkP/Q==","signatures":[{"sig":"MEUCIQCBEqUPuRood/wgFIiUu4ReLoRLmhhX6Bg9ONpMkxzkjgIgN/HY03wAZbOG+q3zYZgW1vmtkQ2jp+IbMEZlFokfiQ0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315040641.5488026","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23260583},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"54880266caa383a7e652eacbc62cab147f367f28","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315040641.5488026_1773547629457_0.8150963261385686","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315041621.6d31f73":{"name":"remoteclaw","version":"0.1.0-next.20260315041621.6d31f73","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315041621.6d31f73","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f4d250f1fdff06c183f3c335d47448a8f507cae3","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315041621.6d31f73.tgz","fileCount":2143,"integrity":"sha512-aE0eyFwROGBhBkE3iDTrfjwSykRfhjCW3jkyluPSXGv0bHRI/AMswEBdJeb6tNpFcI3nNwLXHDXxMOMk43Y8pg==","signatures":[{"sig":"MEQCIBzpMgPcJMuk451JH9MJ/ElVdkAcA+5Ket873rPIDPYIAiApgnlVzuUqSetsD1uhun4S5K8jm1wWk5Qu70zSxwWldw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315041621.6d31f73","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23263605},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"6d31f7320a00a8fcb5ab71c324a2e338eebfd22d","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315041621.6d31f73_1773548211311_0.9685916263236773","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315042606.45075a7":{"name":"remoteclaw","version":"0.1.0-next.20260315042606.45075a7","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315042606.45075a7","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"4bfd9429f3cb4be450270591b69200077b5fe3e2","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315042606.45075a7.tgz","fileCount":2143,"integrity":"sha512-338nuE4+VwYoQqWfnfNWTYmecACqeXsYaFYi/Pa6zrBOncLhZ3MvBRclx9q+Tv+sDBDGftAX8Lby6Dd1w9pkyg==","signatures":[{"sig":"MEQCHyvommUSSYyfdi7P3dNxIc5l+L3WpqP/vmp58JNkh9UCIQDJckhKhigTrxRBRg/j5IkLr0eqk5fZ+iT74ye2+XvRtw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315042606.45075a7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23263647},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"45075a7a18b045d8a86886d33999c53e4bc717d2","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315042606.45075a7_1773548796356_0.9712074515506717","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315043546.fb082c5":{"name":"remoteclaw","version":"0.1.0-next.20260315043546.fb082c5","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315043546.fb082c5","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"0f1f9e33e1c758b19c2450abbb5181df1c172f93","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315043546.fb082c5.tgz","fileCount":2143,"integrity":"sha512-nugbbAcGsgryPV7MXU2PqyoZsSuBZoHOYwMwROC04kEcyo5ZOqxct495MxVYQ874p/QM5ylKnOUBKf446cUqmQ==","signatures":[{"sig":"MEQCIAfA48M32NPH2x6eQzmd3yK6dZbMJext0e2IndCO/TiDAiAQJ4cPkiwfqDEiT+M8+sLAziYUX1zVa0b4jaUvHqQkKg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315043546.fb082c5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23263647},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"fb082c5bf01c975e2f8bdfbaaa1c9705b7f8791b","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315043546.fb082c5_1773549375487_0.28929894933016764","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315044531.8faa639":{"name":"remoteclaw","version":"0.1.0-next.20260315044531.8faa639","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315044531.8faa639","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"dce0cf48bc80dea67122e3fa49dd49a0e3f0adc6","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315044531.8faa639.tgz","fileCount":2143,"integrity":"sha512-QUxgv1ytTv3gsbu7oWVJ/By2TMUicnsn65aCBUCxzeEYHqK0wL0R+hlljceQQ3HA/vE51XtUvRjpM9d1/1A6hg==","signatures":[{"sig":"MEUCIQCpV2xg5Jm8JXlBstZNblPkX2S7oYEX9J9o/i+ku7YEYwIgB39jjQ1fQ+uSd0MHXVCndUx27yXMOdmevmZeyxk5JCM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315044531.8faa639","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23266155},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"8faa6396ab649f8a9d674f9fead6a0cd2293550e","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315044531.8faa639_1773549960920_0.17808622340078295","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315045509.1fe25f7":{"name":"remoteclaw","version":"0.1.0-next.20260315045509.1fe25f7","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315045509.1fe25f7","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f4608138740e73bf5c08261228dac3e36309e52b","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315045509.1fe25f7.tgz","fileCount":2143,"integrity":"sha512-EyIjefUYHBDaEJetbIBlpJurS66FfXKgO+6NnsJHHygFkmGXi7XRILaZu75s/l5igs7c8sPYTwEr9dgTFKszzQ==","signatures":[{"sig":"MEYCIQCUc8rFjZYdFZq+akjqLMN7rZHOglUHeOZJgUma4fFgKgIhAOhIfO3I0wqbTV3wC4Gdrlr63t9tM72D3rpcUJ/TJIOK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315045509.1fe25f7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23263863},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"1fe25f7ed1c0fd97cac412a20fbbca59e78c39db","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315045509.1fe25f7_1773550538264_0.8562075688158257","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315050438.c024ecc":{"name":"remoteclaw","version":"0.1.0-next.20260315050438.c024ecc","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315050438.c024ecc","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"617d7aebcd5549c92d31930f6057a5bfafa486eb","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315050438.c024ecc.tgz","fileCount":2143,"integrity":"sha512-2x24PVYByU6ZYqeahSaIwiqHVAft9EIvrRDEFWdIIC4ewFegMh6h5Wyo9xGDf730FOKicRKtsat1JJVhjX9SdA==","signatures":[{"sig":"MEUCIQDqzQux+IISb5bLa/wC2KwTwtfx4RYeu2KdFvGrn+nPAQIgZ0PL+n3HbCb2kQErFa3dKp/J4/MxuwFvQxi5dKQeeCo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315050438.c024ecc","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23263867},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"c024ecc0f723293144ce7175324961603a25acba","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315050438.c024ecc_1773551106170_0.4609137730698172","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315051443.7ca39af":{"name":"remoteclaw","version":"0.1.0-next.20260315051443.7ca39af","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315051443.7ca39af","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"20dd4c0a2a43a0a92bd6134da7bb66c5617a5b36","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315051443.7ca39af.tgz","fileCount":2143,"integrity":"sha512-gPgQNJJhlhgPywbvN/ocUPSt+FzzwSQzAtrMGre4SL1dKyZeGNkmJxNHn2ywTkQwrJp7XLlg69lAHFDUj5PSug==","signatures":[{"sig":"MEYCIQDBdiD4E8aDEYGBNfzFD5BujsGwturE2jpOpi40Y8SbfwIhANIp5j4/gFL6peP/DhAIw9MGGyaDdjw2ocIUvdhVPdfY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315051443.7ca39af","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23263863},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"7ca39af6b4d50fd85de1269be94dde5c17520fa3","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315051443.7ca39af_1773551713542_0.845009604421233","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315052710.fc44124":{"name":"remoteclaw","version":"0.1.0-next.20260315052710.fc44124","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315052710.fc44124","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f6523908013c8abc45d0ca7a9ed6986940832a24","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315052710.fc44124.tgz","fileCount":2143,"integrity":"sha512-mML5H8duMK9WwnV6sHRbNsO7g8gGKwUzFC4xx6OICLGsc484R4DnBQGeCZEPA1sfGUXV/WUvzJDaUPU7W2f9wQ==","signatures":[{"sig":"MEYCIQD/jF7IwffN46ji9qPQx4vI9r618S5/L6CJBveXccboxQIhAL1wJt9bQe0ZoZ9Ho/SEdmKneG+FWb/HC2jwwEZC69tC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315052710.fc44124","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23263931},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"fc44124466f93923e4c3d50bd5008397d89c901d","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315052710.fc44124_1773552463807_0.26792756052650524","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315053654.14e8be5":{"name":"remoteclaw","version":"0.1.0-next.20260315053654.14e8be5","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315053654.14e8be5","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"4b2198423c86f331d5170b3be8a40c9538a6c011","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315053654.14e8be5.tgz","fileCount":2143,"integrity":"sha512-UyOEqvGLUtNVFiZEVIqN3OCANrOt1xwQyuyyjwUWRDLQFGKABIbtPcmbJMweSYXbG8alEaDDVLn3FrmfLpak2g==","signatures":[{"sig":"MEQCIB2TO92We80GdveDjxEgtWKR1wmitF9Fu1mcVUzHaSC5AiBAaQQ3+zhHrCzemxsQQziuLbo44k4pSt0qmtW8UgpbmA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315053654.14e8be5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23263992},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"14e8be5e0bbb18768194d6a3a85aa026cba3d10e","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315053654.14e8be5_1773553042797_0.4593452602038801","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315054645.3d4414d":{"name":"remoteclaw","version":"0.1.0-next.20260315054645.3d4414d","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315054645.3d4414d","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f429dae9dfb6b9fb7f7b9e51af9e72b66683eaef","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315054645.3d4414d.tgz","fileCount":2143,"integrity":"sha512-tkuFa/ejvHI252NLE/iKfPBWtsKdkB9TIkehN5GFl/dEElURfSXDKptvMLKzNuONnNy2QM0+YSDjLTz6bMcC7g==","signatures":[{"sig":"MEUCIB5PBf8kECZFJPN9erB+gjeUcTrBdml68S4Zv3N4nhNHAiEAgM+AXooU9ZhfWKLsfshTPnVRjUWuBVHcAje3Fcfg/hQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315054645.3d4414d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23264102},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"3d4414de0abdedbd577f77fe788186dc25154d47","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315054645.3d4414d_1773553634744_0.28358452420278435","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315061513.e92921e":{"name":"remoteclaw","version":"0.1.0-next.20260315061513.e92921e","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315061513.e92921e","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"410da0c6284da140bde473ef0b4104513887a461","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315061513.e92921e.tgz","fileCount":2143,"integrity":"sha512-oZ/DEjwRRLLmXesNQdoksCSLJb7SXKenNnbk77dLqs1Xer9HXQ9FPhF56vHGDDzY9PnpwNWy2gvpQ0N4rnZczQ==","signatures":[{"sig":"MEQCIAHSHIEdoegOrnS2C6D2EfqAZ5rL41vGPdeRiY9SyIstAiAJrfw19L0qnVEMDbxjEKsvLdZcaIJQZV1Awvb/BdncgQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315061513.e92921e","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23265249},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"e92921e60d7e5d82eb63d912889bc0ec84910c73","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315061513.e92921e_1773555342821_0.6095042263501955","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315063320.dfcbee4":{"name":"remoteclaw","version":"0.1.0-next.20260315063320.dfcbee4","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315063320.dfcbee4","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"3bde3294852886d473eae54f06825042d0ec76f8","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315063320.dfcbee4.tgz","fileCount":2143,"integrity":"sha512-peuU5Ei3aTUHjAfNxfwP6Wz4FUmDJrIfxdJO4Xkk18qn6DwzFrwnQgHJJDa2bsuWFlg1KrRc7pG8MJ65zsN4kg==","signatures":[{"sig":"MEYCIQCxxzxLtepvI7XmBv6fQD+i5beGCRtn/XNU4N+dj67e2gIhAIf7a4P5rn1OskewEM7j3/ZsHh+YqIy1bH5MSTMu71hM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315063320.dfcbee4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23265245},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"dfcbee4336d5e87221e395dc5ccf2812faf11b14","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315063320.dfcbee4_1773556429904_0.08509173791244606","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315072759.81589d2":{"name":"remoteclaw","version":"0.1.0-next.20260315072759.81589d2","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315072759.81589d2","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"00fc3fc8129ca5e12ba1387981a55a225511e817","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315072759.81589d2.tgz","fileCount":2143,"integrity":"sha512-lhwmamrXdwEttFh5FZRxSADJBQWx7vlzE4+eDHbq9fpDmcnoaii40dnjmYwOL0uxedRanVeQ1BwnbDe45IW3Dg==","signatures":[{"sig":"MEUCIQCOoJNjSaTMzbIdvtbfQg+B7FKCE/JT27uWkwLvcJhcYAIgEw2u7QATF876WMY3cGvxklyJPodx6GsuRnKDfg07DVM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315072759.81589d2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23305840},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"81589d20b4f41a59ddb4cb50e0839eb82da3f218","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315072759.81589d2_1773559709236_0.7105641181575748","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315073712.55be17e":{"name":"remoteclaw","version":"0.1.0-next.20260315073712.55be17e","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315073712.55be17e","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"6a5fbe5d32c56fb43c1edf34d0b6832cb4a75d8c","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315073712.55be17e.tgz","fileCount":2143,"integrity":"sha512-2tyJD+x4KAw/k5H1uF1IVT/XY/7lRF6GkC+OFZ6a6MK6NavF3KW0E4J7yEGmm3Xv01/I/XFGr3JCoKfccRi40Q==","signatures":[{"sig":"MEYCIQDk0ajksgpPCLOKqrtOFUGp9sNDD/ng1lkvnTTbjSNyDgIhAMstKHUtb1IpPm9Ylp57Qyrw+WUXxP2zLpe0KZN42M21","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315073712.55be17e","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23306768},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"55be17e2444a6e404199ee3cb20fb13c89c73dda","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315073712.55be17e_1773560262212_0.9558888083082562","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315074903.9cd5b3a":{"name":"remoteclaw","version":"0.1.0-next.20260315074903.9cd5b3a","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315074903.9cd5b3a","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"56d580747adafdddd4ea4c99e3125e0011ac4fd2","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315074903.9cd5b3a.tgz","fileCount":2143,"integrity":"sha512-E8QUGI85mT7az9/75zcLLoEbn7F97eXlnDGVSzXW1hVSWYubzZHjmJOOWj4lpDJRKjKd+4t1wtPO70C0m4oEHw==","signatures":[{"sig":"MEQCIHYkXMPTCGZ8XbTaMMuRM/oaIpY/5vBJCWGIYDaINYHfAiBI7DcLMKXZUPGTHlxrX6LWsiORQr2Phn0btx/58QO+6A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315074903.9cd5b3a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23310822},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"9cd5b3a1ee4accbb308805b2ba2d7c94c43b58c6","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315074903.9cd5b3a_1773560973796_0.8951021002929849","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315080033.e8e1cf2":{"name":"remoteclaw","version":"0.1.0-next.20260315080033.e8e1cf2","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315080033.e8e1cf2","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f574113c47edc6a8a09156d264cd2b1ed17a24c0","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315080033.e8e1cf2.tgz","fileCount":2144,"integrity":"sha512-No0k48IAzmJUzBTeT2VIqM7tJmkQCfCerZuemBFOquy3cEzSFeBJL2p1W46+ppDIuH9NcmxF3PT23H51dcyGRQ==","signatures":[{"sig":"MEUCIDuaS+bYgLzKduMaMuv+Zb4xgsB/98FcbQR/5kcK29tlAiEAjiXOAR8hZD+Y9SLJRWvACuJ6+asYkuLPsK8AjtOnjSQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315080033.e8e1cf2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23314380},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"e8e1cf2563fbaa597e7889c354ddf640da6a80f3","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315080033.e8e1cf2_1773561662008_0.29917484014221296","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315081503.62ca1aa":{"name":"remoteclaw","version":"0.1.0-next.20260315081503.62ca1aa","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315081503.62ca1aa","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"dfb38aa510c3602657497e9534b45e4119ec6cf8","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315081503.62ca1aa.tgz","fileCount":2145,"integrity":"sha512-uPAHkwztvIC2+B00rNCpT6wOsYiKokTTbvNExO2OqdPsw0RYmet1BnIYUXrCbWpxjOWlyrixq5pk4NlWahB8ZA==","signatures":[{"sig":"MEUCIQDFH/IMFmDcCUSqwUiaktGRHU37MhBHxXuFtGuc6KFXdwIgR6ACNwgvqnPfT6sDyBurMBzyiXZD7PxMXfCF7+Gz220=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315081503.62ca1aa","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23315985},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"62ca1aa7bab7f1c75c88752619f170cf84dce3b7","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315081503.62ca1aa_1773562532629_0.9436917242597553","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315082451.d204cc8":{"name":"remoteclaw","version":"0.1.0-next.20260315082451.d204cc8","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315082451.d204cc8","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"aba56e6852625001ccdd436533618f98a9c90043","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315082451.d204cc8.tgz","fileCount":2145,"integrity":"sha512-J2eJ/9YhfIf4nrpIx47XLnxSihJ/XhE21ce/e4+/spg68Bc9tH7gwTOBRCcIPcSgdB7yfu4ozlQRs9xWgj5nxQ==","signatures":[{"sig":"MEYCIQDF8Oh3yqarLCJFhnl5rWnB+Ly3gOfFFSrfDx1OrLxdQQIhAIZaDE6G4N1hIYRnsAm+sfQL+AcQp/3JsBzUlA9lqSxV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315082451.d204cc8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23318489},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"d204cc86273565d093a5b8aa2258d8a1a1960eef","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315082451.d204cc8_1773563120947_0.7077001578734978","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315090810.95e3902":{"name":"remoteclaw","version":"0.1.0-next.20260315090810.95e3902","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315090810.95e3902","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"7986144e60e6e6e920cd24cf44cc0b9ae9f386ff","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315090810.95e3902.tgz","fileCount":2147,"integrity":"sha512-ahokSm92AXwfuPIp9vSjoU/RtfMMK5YFa1pKC6idx90gZDlp53Ql06TTSuFTcx83UAEBwIQWNHiHAUv588Fi7w==","signatures":[{"sig":"MEQCIQCZWzwVAg1eVbOgylvE1UT+YNY6GUt68Y+aENS+6u6e3AIff0uaaPszVZmdSfprt/8mh+qIEcAdng/5QxXBrRfonQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315090810.95e3902","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23327004},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"95e3902e93c5b5da9078d020eb5e5e47f5c417fd","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315090810.95e3902_1773565717420_0.4514177164834223","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315091745.2b6a5a1":{"name":"remoteclaw","version":"0.1.0-next.20260315091745.2b6a5a1","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315091745.2b6a5a1","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"7cf5b4c1182e371a1e2517fa67d7f44db3bd0b57","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315091745.2b6a5a1.tgz","fileCount":2147,"integrity":"sha512-20HgEKEeutHq7RkAnjxiYRSQybZx1SvzjXbzey/EX2uYO8e5AJg8WY1wsYQUet00vy2a64/RjcT9UIAvXEv+fw==","signatures":[{"sig":"MEUCIEc3Zj+umeBChbWddmmfdhDYx7NNmEvpmZZrqH6GG/ufAiEA+g6bnVduyCtGbARwdVQK0ruGt5qd9l64v234IBT1b/A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315091745.2b6a5a1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23332678},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"2b6a5a1658fcc202d4f071a1c21260bf5cd054dc","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315091745.2b6a5a1_1773566294616_0.8289464901574639","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315093309.4219c80":{"name":"remoteclaw","version":"0.1.0-next.20260315093309.4219c80","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315093309.4219c80","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e201ea89874ef35449155d677f246fc4ce7abeb3","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315093309.4219c80.tgz","fileCount":2147,"integrity":"sha512-4x1khQXQOlx7I2pj162ZIuTvRFtCSqqLzrAArLZgm1/dmqWEO7+X+ZfnVyu1auzT+8Dhv0oLVOiN1icPAz1e6g==","signatures":[{"sig":"MEQCIA22v5QaOj48yFjdg8/9DOQYyY0zxJHEp1b2E9B+6artAiBh7baDuE9iqsxUeRhpgbxBFAYJCe+mIXG8YeXfJ40nbw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315093309.4219c80","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23335833},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"4219c80ad39eadc610176550a9bfb2c8ab2ae1dc","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315093309.4219c80_1773567218958_0.5072543594737353","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315094304.47fe87c":{"name":"remoteclaw","version":"0.1.0-next.20260315094304.47fe87c","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315094304.47fe87c","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"8ff371e8c67ad3aa57d2fbcc1c17d027f6ea1658","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315094304.47fe87c.tgz","fileCount":2147,"integrity":"sha512-5FzRO9R99U3/1SgKyA+XCewE2scrJQxeJJ82AHkBKcwZ58AaFcpy62Yhfm0W/D3GkOsx51+YaqCTNpEcmSyHQw==","signatures":[{"sig":"MEUCIQD3i0ejfTw6P+OVXtdI+Ez/meXyRuyXQ3AiPZ7i9HCELQIgF41prZRoxUBFbTPAPXW6TtfiDSjgXQ6bZAuVPcT7x9k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315094304.47fe87c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23338435},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"47fe87c81b4ffac12b08985559462cd8daaa5308","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315094304.47fe87c_1773567813538_0.2792559029749273","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315095232.9488bc8":{"name":"remoteclaw","version":"0.1.0-next.20260315095232.9488bc8","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315095232.9488bc8","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"ca779d6b8718b00329f2d131866aaeafb4ab149a","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315095232.9488bc8.tgz","fileCount":2147,"integrity":"sha512-AgrEmhk+mPm+rXH1PgePaoggMR0c2pVsXp7NrLKcEEkiUaphmuNyccVOfUjw88pqO5VCU1WogyTgjM98T7piMQ==","signatures":[{"sig":"MEUCIQCkNzRIP/iFgNOjYkV+Mvt1f03yplkEsy2Maw0IB8mzuwIgTxRqW1BIeHoRoi5+PicFtore6YF1Ptsl/wR1AAcGOgg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315095232.9488bc8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23338511},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"9488bc8770933fcf9379c1176d2e0e30e7293215","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315095232.9488bc8_1773568382104_0.8140021514740929","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315101233.aa1def7":{"name":"remoteclaw","version":"0.1.0-next.20260315101233.aa1def7","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315101233.aa1def7","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"862a39d54a6ffd77f94299576521c2e9a99ada93","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315101233.aa1def7.tgz","fileCount":2147,"integrity":"sha512-PAZ55C6jCpRVllQ48IFxFzPQWSVDkbPQKG0w07MhKmlmyP2XrBN/NzDlRNfhb1ECd6mfELqOwumtJJ/itxZeig==","signatures":[{"sig":"MEUCIQDtp9Zb6YG6L+Qb3rIzKunPegQwUJ6QMDj6xXFV7Cm/agIgNFELoYd6emRbgccHbgMCi4OetTpMbCu0lo4zGdQErmk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315101233.aa1def7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23338511},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"aa1def7f992095cfb56861f448ac26ad583dd093","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315101233.aa1def7_1773569582119_0.18119202128491563","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315102223.17fea52":{"name":"remoteclaw","version":"0.1.0-next.20260315102223.17fea52","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315102223.17fea52","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"2b134c5eebeeba57bc3450079c12e564dfa9d2f1","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315102223.17fea52.tgz","fileCount":2147,"integrity":"sha512-mbLUgnKzCQUvMz0rjd73DFY8SZ+E0FmewTbmiCS8CNlYU7KgcwwqIdZsjIpEnwwXcwQ+8etTKk13FINxMar9Bw==","signatures":[{"sig":"MEUCIQDLmmEbHgWeM4tmmvY5de+yJPD4RM8WRGtxDAgefbARFgIgFnRChoF4jTrgh+S7m5lJouPVo9RnY4zy38+9q5f1hSs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315102223.17fea52","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23341744},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"17fea526441dfa52f27ef4b6a4fe1b6b2c0123c3","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315102223.17fea52_1773570172665_0.7983894503222344","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315103127.d79f0be":{"name":"remoteclaw","version":"0.1.0-next.20260315103127.d79f0be","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315103127.d79f0be","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f36e3a8997449c026d86b3c206e5e2b5ef6b480e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315103127.d79f0be.tgz","fileCount":2147,"integrity":"sha512-GoALdMq+k8cJF2pCgJ8B+FdR/HGqltqfHhXr0spTo4NLvrPIhFZHRTmu54VvvHI38KeQsU3S/McEqtzXyiqq8A==","signatures":[{"sig":"MEUCIAKMYHgZRpTkoR8i3GvzYmddzZ0FnjlrrODp5hqk/pOfAiEAow6aplX1qnUchYJNeAMDcTRmv5TnSQ6E2rs8rcLFAEQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315103127.d79f0be","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23343960},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"d79f0bebba927d6ca5f544469ea5637d9e99f835","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315103127.d79f0be_1773570716051_0.12104509182887546","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315104745.45b9758":{"name":"remoteclaw","version":"0.1.0-next.20260315104745.45b9758","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315104745.45b9758","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"933ca4c39fca652ed5bdf8dc10c8cff7a979b09c","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315104745.45b9758.tgz","fileCount":2147,"integrity":"sha512-Fb9AC9rl9XsuFXv8gnbzYKp17zIbuNVilKBfqAVl/lX8C8TzzBO+JGzgZLsO3INKxVTtQ88y4CLBDhLC5VtOYA==","signatures":[{"sig":"MEUCIH9x1C2W0Hcis+lD6kdfK0qSuuNqvTLkVXDD4FMgv/qyAiEA52oQJXSxQa80c/BuswNn6pEdfg649n47jlMLInJbn+4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315104745.45b9758","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23344566},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"45b97587c6a2cbd6eaa9d34f2406aad469a6e3a6","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315104745.45b9758_1773571693560_0.6045890957412661","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315105818.53db2a6":{"name":"remoteclaw","version":"0.1.0-next.20260315105818.53db2a6","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315105818.53db2a6","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"2d9f670c752bd134546dcd9f6bda93ec225a5ece","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315105818.53db2a6.tgz","fileCount":2147,"integrity":"sha512-vQFDHNZMHpQ7zQxVjx1p8V1tJQ/cf3zJ2DaE8QXM3rrLCyovSCKjZ8tsnc5Gy6Vr15+TMYR9dYK5FCpYn6f9eg==","signatures":[{"sig":"MEUCIHGujjS7dPEIPVHyw77+enS6NPHZ7f0UCCt2/AHDg1SJAiEAnBJNkxBSsXM8IDD0K4UmFd51eL24pMYFEY0RGRRR2x8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315105818.53db2a6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23345362},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"53db2a6927e1af95cd0f57faf0086d9d8cf3402f","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315105818.53db2a6_1773572328433_0.1583675358583141","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315110754.ae43e21":{"name":"remoteclaw","version":"0.1.0-next.20260315110754.ae43e21","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315110754.ae43e21","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"1e447a4d40992e3d562d6e282d97c37373895bd0","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315110754.ae43e21.tgz","fileCount":2147,"integrity":"sha512-DSv8ZFX90fEejMGuGR4nIR7mu0Rp8sfLb1d07VoA1w+iJETCI2Tx/O3BjKflT4sfygK7AKi8aGboMhLTvTllCw==","signatures":[{"sig":"MEUCIQC+L/+gJ70Z6CVs9JGjuEfHu1Zidb4U1aRE9DTs6E/ihQIgZU+oo5d/9Z/10O5uHGnkjcbRT3GgVtKQjxf3TrYJTds=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315110754.ae43e21","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23347169},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"ae43e21731264dfb44daa10862e6d38eea52c492","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315110754.ae43e21_1773572904031_0.7525455498060971","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315112357.5dce0ab":{"name":"remoteclaw","version":"0.1.0-next.20260315112357.5dce0ab","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315112357.5dce0ab","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"92c8f3c0d4cee2c96e167a92e141da88920196db","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315112357.5dce0ab.tgz","fileCount":2147,"integrity":"sha512-2uNyPYwi/nn+5p15whj6pfra4ATA1+ST6085qTSoD2EQISnfXUq7wfzNvrtHcgPDzygubcxApwqqb3LbEDUPMw==","signatures":[{"sig":"MEQCIGF7/6KMT6uYpYxUxuTMgpCgYTsUEQZCCD5evtF0QiM9AiBANoVs/x59Uy2J7COZa813ybB8itjsYzg6VXQZONuvKA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315112357.5dce0ab","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23347241},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"5dce0ab924628b9d46538a998c2ad9572fd76f4b","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315112357.5dce0ab_1773573867373_0.7637290010777995","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315113359.9d1a091":{"name":"remoteclaw","version":"0.1.0-next.20260315113359.9d1a091","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315113359.9d1a091","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"58025394342db9058f90a8b1d8ca52b90545394f","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315113359.9d1a091.tgz","fileCount":2147,"integrity":"sha512-SXY+T/+GgGG9fgK7/DC3G0eVN/t6s6GiUlPWLFRraYhODvgb7MtuV8XXebGAc8S88hwazO8mqSPtMO+xhj/TOw==","signatures":[{"sig":"MEYCIQCuB/BQPyTFpOMNcQAKHQjKXK5SE9PLhUNxOmCqj4mmxAIhALu/WSRiLUPQ6CP3k6DKBnLh5DnrUfaPAlfuIxgPgKD/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315113359.9d1a091","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23348316},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"9d1a091c71b242dbb15839b15e2fdb3d77a373d4","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315113359.9d1a091_1773574468702_0.09704645963758196","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315115117.6fc2338":{"name":"remoteclaw","version":"0.1.0-next.20260315115117.6fc2338","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315115117.6fc2338","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"34625409880478a4d964ddcdf75baa7ee88a44c1","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315115117.6fc2338.tgz","fileCount":2147,"integrity":"sha512-U7SCh90ERA3Byb0xXVpdmILJiHPP2WDNA5OMOndzw4FCO0fxxYNr9eqvu3836joNgeL942R7eW5hLM7HpAefYw==","signatures":[{"sig":"MEUCIFxoDVYUcIeT9gUI3gLQPH4jm3RYJiZk1j3Erue3VXbYAiEAtucbGAU8fp17AtUAznLp7b847X/8wYh1AD3KgDZXslc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315115117.6fc2338","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23348648},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"6fc23388a724229551b970a677990ade7b80e68c","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315115117.6fc2338_1773575506957_0.1399143593618566","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315121447.3aaf73e":{"name":"remoteclaw","version":"0.1.0-next.20260315121447.3aaf73e","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315121447.3aaf73e","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e9dfa461ceea19ce778ea892d9d36a9bc0713bad","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315121447.3aaf73e.tgz","fileCount":2147,"integrity":"sha512-nR6Foj0AKDGfI9QzUg37bqPso/5Z9+b5QOi9LDlzmGFwUI4Ws6AAzhKtv2/ueFDcsvbN+aAOjA6al7wfhMQh3Q==","signatures":[{"sig":"MEUCIQCc7xaOrQncKO1W8wk4WpVJH2/XCxiWaTo7QnLqQGF2ygIgGkbLqqBF3ybrefI5uyplMWRNyttl60ehtoPJrwafi04=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315121447.3aaf73e","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23350680},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"3aaf73e13734ef979956ccddb72243cd15b2a1b1","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315121447.3aaf73e_1773576917237_0.40051144499665536","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315122454.73f6f1d":{"name":"remoteclaw","version":"0.1.0-next.20260315122454.73f6f1d","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315122454.73f6f1d","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"69c2d610d120fec6f3f2bd684fadd34f04927bc5","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315122454.73f6f1d.tgz","fileCount":2147,"integrity":"sha512-+RRRHezxLaFuBUVKlqyqzPJ40NW7fsy+Ld9Y+VwPVcCpeRY7Ssg6ZUzmRI0AQJqlW/nFpZCWvS9GNewtJ7303w==","signatures":[{"sig":"MEQCIA2GM38tgLOmmgKa0WvyreTmk5/TmH0wxR1/rxMSa1rBAiBOa8wZ8PMNpkpXvzWUkCbJKljIJqwVIos0ujHZORtSSQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315122454.73f6f1d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23351260},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"73f6f1d8b28945eb0d3e7247de5dd6e042e34d63","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315122454.73f6f1d_1773577524535_0.6213310570552524","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315124330.e2bcd07":{"name":"remoteclaw","version":"0.1.0-next.20260315124330.e2bcd07","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315124330.e2bcd07","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e38f66a334585773fd1c2568f576f46918951410","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315124330.e2bcd07.tgz","fileCount":2147,"integrity":"sha512-y6hsaz9xstQd8ShqrY5du3ixjQ/E7iBMQFR5b0VMlahl8XXTwp1tj9SPsmQmXtDY9kNiViY6wjh7WZyNMmp1yQ==","signatures":[{"sig":"MEYCIQCSDNJA7KVI7KhyCk8ncVrsqNlZGR9F21EXBxs+Erb6CgIhALanHoobLvEzVEnhDRIfJhmvLykFo3PZ4CEcool1sAwI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315124330.e2bcd07","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23351636},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"e2bcd079f71ec9af651d8f286b477dd171f0c72d","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315124330.e2bcd07_1773578640046_0.4344471310311515","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315125300.e3c76e3":{"name":"remoteclaw","version":"0.1.0-next.20260315125300.e3c76e3","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315125300.e3c76e3","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"6d609fc8853ef69466608bfecb0a43a00c436ced","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315125300.e3c76e3.tgz","fileCount":2147,"integrity":"sha512-pQhq1g9wXW4YEXEhHqLZ/zZ7q2K8UHjI2cRwTor0S821azmw+A3EthsfTirFYgov6/1MnPuKK7o8GeDGuI+OZg==","signatures":[{"sig":"MEYCIQDKxoqYyTq/2JzzoOwImiscEuwoVMfpfJYaHTHSXPryoAIhAM/ohlS8WxnM5iiLT8qxJwpCRPbtiih/IKRU8H824ZoF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315125300.e3c76e3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23351798},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"e3c76e326e315bc3f792f6251436aeb667f8ad88","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315125300.e3c76e3_1773579209750_0.07249573449158198","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315130341.eecd9c0":{"name":"remoteclaw","version":"0.1.0-next.20260315130341.eecd9c0","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315130341.eecd9c0","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"25117564aec558dcbe3a658fe42f7887dfcb941b","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315130341.eecd9c0.tgz","fileCount":2148,"integrity":"sha512-0vP/EHOjG9ZP31OOBUsMLSFcu7tYI6Q2gYJAWLOjyfZX7GoC8Hh88WMyMmrWWoMxMtPQ7Ou01w9AyxAEtFoe/w==","signatures":[{"sig":"MEUCIATTqDBabbUzzr33EDIqqLHNylsK08NZQr+cDxurcvY6AiEAjaBJQN0W0jS0+nomIvv0EkNMczC8e8q8HOPKk415pdw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315130341.eecd9c0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23356339},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"eecd9c066c0ce41bc2b6934f0eb5d305245f21fe","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315130341.eecd9c0_1773579850364_0.6192744936094419","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315131320.1315532":{"name":"remoteclaw","version":"0.1.0-next.20260315131320.1315532","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315131320.1315532","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"ed92a8abfa0e1fff56a07598c6cbb2a84c1dd6ec","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315131320.1315532.tgz","fileCount":2148,"integrity":"sha512-z/od/iB1pbt5ZFi6I7QCFNykHUXLwWolJPw9hDdsf6i2n3pb5QiFMEbpLsWuHnuuGURo6tVRieP4raLCqzZj7w==","signatures":[{"sig":"MEUCID5ieIJ4TLyuwGkfjn/sIJQSFEAYE08CLyAaAx1rwfoUAiEAnY6/A+ZKcMNZZvbi22VVTkqOCL3wv7BXdn0fKxc2gMw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315131320.1315532","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23356489},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"1315532213be86710d0251a6b044e4e271178be2","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315131320.1315532_1773580429292_0.6638560026343112","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315132300.4db6589":{"name":"remoteclaw","version":"0.1.0-next.20260315132300.4db6589","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315132300.4db6589","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"ffb947915e9d84bf03614eaf435355eca1d3df47","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315132300.4db6589.tgz","fileCount":2148,"integrity":"sha512-U0Lyjz+4pSid1yB367Q0LBurNv46323rPWA0DfIdObfbRY7Xu1BrlQTYPp3UC03VALSPL7OWmJf/vvIKCerdbA==","signatures":[{"sig":"MEQCICEBM/PURUfqFZj2ZJcexnTV4N/iOvhvD25oWpgw5nXyAiAssZzq+STJlpKoyRQ9hWgPQna8B9AsPHl3P68IuyGlvQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315132300.4db6589","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23364325},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"4db6589c7c4363d8d2c407212f97b6b0ec74627d","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315132300.4db6589_1773581010506_0.8838449460602238","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315133458.08c909c":{"name":"remoteclaw","version":"0.1.0-next.20260315133458.08c909c","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315133458.08c909c","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"2915023569ff03a13e9e2008ce70d2a60ef8a7a6","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315133458.08c909c.tgz","fileCount":2148,"integrity":"sha512-XrUqd1xPBEhI/kgZWI++UL3gG/ixFBtGai6u8g7n8u8exlx4Zx72pA09VkR8q5UYPj/dn9Mwfh/dBetWesTfDA==","signatures":[{"sig":"MEYCIQCs0fcExXG1Yg8voHqjf361qa74BEPtnzlG5W4J+hyt/QIhAMKNhrKkPD1TH8DRgukykOESptD3iJO1LzQ5LjnwSKAz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315133458.08c909c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23364738},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"08c909c01218fe7944e540ca3e89da73686f74e1","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315133458.08c909c_1773581727010_0.5553006559030953","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315135430.69b35f3":{"name":"remoteclaw","version":"0.1.0-next.20260315135430.69b35f3","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315135430.69b35f3","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"acd9855686bbff7ef605d178d4ee932e57b5a5f1","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315135430.69b35f3.tgz","fileCount":2148,"integrity":"sha512-BmczK2EZ3s7lbj/BFe9+c1g1cu0VO8sG7iIXHsD9O5Ms9ECtVVaxndzlRu9qrNkOTLYybRjRtmvfuNP9fipfSw==","signatures":[{"sig":"MEUCIEeak49ki+CPvD91L/Rw9OQYf+CPG6rH3gVNdyTvr+A/AiEA0aHJG4kuYBokzxdmXyCy+WHDc1E4Qe0x7dwLHGbjmdI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315135430.69b35f3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23364786},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"69b35f3ac9333d07b9366d43b8d283b3f0c4ef78","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315135430.69b35f3_1773582900883_0.994111412490245","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315140420.b6ff155":{"name":"remoteclaw","version":"0.1.0-next.20260315140420.b6ff155","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315140420.b6ff155","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"1631d03371d83b7ab436991c4fcb314200657600","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315140420.b6ff155.tgz","fileCount":2148,"integrity":"sha512-l01YY1AYY5RtdT8xmcwSRN7Y4lzYFSS6juwvc3YRvPD9BYOH/f3kCH5xA4qNAYGQz5aDEPptcEFerMR1q8GClA==","signatures":[{"sig":"MEQCIChYYaAd17CWtaTBpBLulYm4jCvWoQwvB2K9D3oEvdSsAiAll4nt/R9BTUNPnVwvb7rpP5UWHH3Pp8DGbDfdNl7FmA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315140420.b6ff155","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23366096},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"b6ff155ffc7ec6087176bf25971ffbe477af91fa","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315140420.b6ff155_1773583490207_0.51546796045176","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315141628.2f628fd":{"name":"remoteclaw","version":"0.1.0-next.20260315141628.2f628fd","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315141628.2f628fd","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"73cccd1a95cf70239f56fde46190def4dfee8abf","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315141628.2f628fd.tgz","fileCount":2148,"integrity":"sha512-Z/ESnqw7D2nbMVQcKYS2wQ8bKIG8m4Adiz2WnS+aLbIGm58ixSFGT998W+6n8f8juv2iJOzPoTI2LPEkGLTvRA==","signatures":[{"sig":"MEUCIQDCG8TjIj36DdHdOzp0RsaNCGI/1xH+rGtSW9Gy6qeL0QIgB+yIp5456TaqhqRk57GB0GnXfSrnp1EFaqyT4Ecr1kE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315141628.2f628fd","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23367278},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"2f628fd7033558ae20e6a18d607b6f2baa6e8962","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315141628.2f628fd_1773584217662_0.014370585224713794","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315143603.33fe49d":{"name":"remoteclaw","version":"0.1.0-next.20260315143603.33fe49d","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315143603.33fe49d","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"21303a393ac89e104e8fcceeb1aef5b56c7a859d","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315143603.33fe49d.tgz","fileCount":2148,"integrity":"sha512-n1uYya9IMCMasSfuH/e3p/9sly64nvH3qkh/WhuMtEBLaMczRfv/qKRvKe8SSXubqETdfTwdBdJBsjSJWel2AA==","signatures":[{"sig":"MEQCIALbTErNXIEOho51w03vqvg523hkxD5d1/hBNFwjuwHnAiA/CZrjshBHZpwM/X1UvSXIen6f0nt2BmJMB3qn1bm9FQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315143603.33fe49d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23376137},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"33fe49deae317bcb04bdfc0143268764df03a1fd","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315143603.33fe49d_1773585392004_0.48479468953395743","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315150607.02418df":{"name":"remoteclaw","version":"0.1.0-next.20260315150607.02418df","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315150607.02418df","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"7e201baaddaabf65e658df63e5f69dfadc68c432","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315150607.02418df.tgz","fileCount":2148,"integrity":"sha512-gH80dhzBynncocC9z7h6Xtxa8ukAsUXMGsbeeORsazxQJN5++19y3MB0o+mr16uTp6vVSc9ifDQTYnkzJKG3cQ==","signatures":[{"sig":"MEQCIG6/oxuSdmH1nXu+g+nsLhJTXPgQ5x+gbWFjl46L9NBdAiBat7ffhUz4zvuxiUWJSRDXLyXLmDyhwMv+xzCthSAWqQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315150607.02418df","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23379160},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"02418df40633e81b245742dc0f1adae61d5290ab","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315150607.02418df_1773587197465_0.22061738772880202","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315151559.fd0d6a0":{"name":"remoteclaw","version":"0.1.0-next.20260315151559.fd0d6a0","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315151559.fd0d6a0","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"0fec06b32686eaea34d976d0d238ab365b9b1c8f","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315151559.fd0d6a0.tgz","fileCount":2148,"integrity":"sha512-zTCQtmE1meMcv/5Tw6s/ATeyCLEqdeVuZvrcnInEZUofvKqwkpvX4wTZBL/9GiXc+3ryz8UAvXwdJpCJaZVQrA==","signatures":[{"sig":"MEUCIA27dC8VitcIt29u0+8FS+Sw7eiEEtxSuXoEmPkGpi50AiEAxsm6w3faqWHmE9AIhlLjSKy2bbahhgPHBTdbDAFUavg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315151559.fd0d6a0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23379518},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"fd0d6a02f5d360c7189625440c56b6b04d58c7bb","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315151559.fd0d6a0_1773587788094_0.8598098857805883","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315152508.6ff63c3":{"name":"remoteclaw","version":"0.1.0-next.20260315152508.6ff63c3","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315152508.6ff63c3","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d27d130e915982515b4a8bc56d7f487869001988","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315152508.6ff63c3.tgz","fileCount":2148,"integrity":"sha512-zCncqVvZJkhc4pYSbpjLu4f+kpw+tJt0GJBBm1eoA8Eeo3D67PVf5Icow7cKYxmJ18Aax0TcLx1osC9IMDnYog==","signatures":[{"sig":"MEYCIQCJwTk7MXx0LoS42Rcz0y7XBjVJCksdqRVTSPEWxEaHZwIhAIquM2QpwkTXv3mN2LNP5AQwQ8v2UAB8IzWgDhyQN81e","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315152508.6ff63c3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23384324},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"6ff63c372661ad2cf0768c5a978ccff8e4e9b882","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315152508.6ff63c3_1773588339636_0.18568406011825678","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315153618.b5ff23c":{"name":"remoteclaw","version":"0.1.0-next.20260315153618.b5ff23c","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315153618.b5ff23c","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f9f6f2432a5db4d18e5df44a2327e26df30702ea","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315153618.b5ff23c.tgz","fileCount":2148,"integrity":"sha512-FO5U0Fm3wCwuq/+JVr2vTv0c2P3CNs/6JSOeAd6NfMELWqbLNRR44QI53J2QcYP6C7QefT62hKCnDblIzog/fg==","signatures":[{"sig":"MEUCIQCuCT6Gd8sp08HEGfnNMYf0FSFR3nijN+0Yzs0YQgjUtgIgFxtgXrmOIaNdu0toy9GGnpqgwZTd+Y9DMTyf5CS9HHI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315153618.b5ff23c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23384470},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"b5ff23cf1fa4624f1c203720fc4547caf91f59bf","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315153618.b5ff23c_1773589008656_0.543986951574978","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315154706.1bec247":{"name":"remoteclaw","version":"0.1.0-next.20260315154706.1bec247","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315154706.1bec247","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"355570d5737081766f24a5e24763df9f2453b64e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315154706.1bec247.tgz","fileCount":2148,"integrity":"sha512-I45rsPpbYdBGrU2ARUzpymbjbETHgu6zMzqbz89MCPtnWS7mK6P7PSE0nOqLwbbn11bV/d4JEWlr8PASeCo3QQ==","signatures":[{"sig":"MEYCIQCa7UXHAVeE6oXf8sU5vBehyq9Zkw20rrlytLkqjakbEAIhALME8kS/kx06h+/kqUPc3BsKPEVzzZ9ySyJyRs3PQm8B","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315154706.1bec247","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23384862},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"1bec2474c5b5965591eccc8e814a748f69b8d69f","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315154706.1bec247_1773589655922_0.22901158211258243","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315155609.6cd794b":{"name":"remoteclaw","version":"0.1.0-next.20260315155609.6cd794b","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315155609.6cd794b","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"c44e289e213360f6c85e1371e7ffa7997ba214cf","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315155609.6cd794b.tgz","fileCount":2148,"integrity":"sha512-MOtly7nrzPUcENoHGyhqzplt3ZE7QK7BbyV4QFbMRg7zLI37d8bZuFH7mkZDINSzMu9P8P4+rKTdVaPjVca1HA==","signatures":[{"sig":"MEQCIBLBiq/+ll29CYQQ0uxPr53qdO+xdCf5Q0ZCOFd2uXt+AiBPSa7MkFNClZrdMd/+4e3ZZ/vW+icWJjZxt3gfHCymVQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315155609.6cd794b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23385500},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"6cd794b133a0557ce2b8f23430253a0242be6cfd","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315155609.6cd794b_1773590199575_0.1936078314707106","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315160533.4ae16b3":{"name":"remoteclaw","version":"0.1.0-next.20260315160533.4ae16b3","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315160533.4ae16b3","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d158c2833307ed61c1ffb87213f68ed992721526","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315160533.4ae16b3.tgz","fileCount":2148,"integrity":"sha512-aI1HACq4an8WrInHZFbyhnvko9O6boSdMh4c8C9GlpJ9JdCRSnULbyouB7LAkrXt5QlKD2905cri8JaiMGF5oQ==","signatures":[{"sig":"MEUCIQCIRD2z/YHn86ZfevEtNgOVLoMxOWFklCxCGRb8K1vZoQIgMYWSN6UzBwpH6Qs2xygCJzqR0OMvwKJ0Rgy0idvwQsw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315160533.4ae16b3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23392046},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"4ae16b383d3387da8b24b985d7a1f97c2920b2be","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315160533.4ae16b3_1773590764069_0.07162016138722671","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315162635.53d353c":{"name":"remoteclaw","version":"0.1.0-next.20260315162635.53d353c","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315162635.53d353c","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d35945514cfe43e4e96998824dbad9d68dd39048","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315162635.53d353c.tgz","fileCount":2148,"integrity":"sha512-3R58AGUkQjXGl0iznu1ixj1peAKdHhrTIAHsbwrWviafz7ItIjn9txDiaup9BoKqycAmWBndyJEmRE1mxaeikw==","signatures":[{"sig":"MEQCIB2fyprULv1ZXtX3Jx+VOBm2Dr5ZLrwE/BGyLcph9fWsAiAdRpEgGL7HF2yl86YMuiTv/0o9SwnFJZePpg77v4rPzQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315162635.53d353c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23392369},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"53d353ce36c7b159a836b2a596a160b559cd10cb","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315162635.53d353c_1773592024983_0.04842537710105432","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315163741.451b662":{"name":"remoteclaw","version":"0.1.0-next.20260315163741.451b662","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315163741.451b662","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"49192a9628b125166b021bd0f5cac7555de720ae","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315163741.451b662.tgz","fileCount":2148,"integrity":"sha512-kMpLVB9T0QAiDvMZ8rFPHDFKwYrwFnj7x3WJWFEsiuUcLSkVEaPMHyuWZmXE/a+ZgKIW3WowLT2ZIYG5neNKfQ==","signatures":[{"sig":"MEUCIGD1rkAHyYhGaFhvjDjY9YkuhC6R7plpVuPaaqQ9fhm5AiEAwH22BeK5hcflugOh2iiZwbkmOoqMZO3kowh8xPMAF+I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315163741.451b662","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23392369},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"451b66245ec6270ea08f112e867a3174f84009bc","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315163741.451b662_1773592691628_0.07211216864455539","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315164736.cc309c2":{"name":"remoteclaw","version":"0.1.0-next.20260315164736.cc309c2","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315164736.cc309c2","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"617b17f0eb24fd0e0a129610426ad529b4839984","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315164736.cc309c2.tgz","fileCount":2148,"integrity":"sha512-Abrp4usCxw6OMqXdqN5yljFN8dmAK6SAcwvHbh6/wvw/s1r2wNpur37wnMan+u/8Yrn0sZuXharpErYnUpM4iw==","signatures":[{"sig":"MEYCIQCgMHZ8Oxfg8GoiUQeINrEMcyap4KrmwZOzWW9Yl3jMdQIhALl7M/qk+FOlf3JY/16PjgESQ/I7K9XU62FnFkvlNBEI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315164736.cc309c2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23392425},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"cc309c21de9e41f09ea1959df7a5d8ff99f93447","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315164736.cc309c2_1773593285537_0.9536354252322208","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315170015.95e16d2":{"name":"remoteclaw","version":"0.1.0-next.20260315170015.95e16d2","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315170015.95e16d2","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"c987bb437dda76e74f61a8c854a9b44794b225fb","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315170015.95e16d2.tgz","fileCount":2148,"integrity":"sha512-AH3v4EI+Q6QwD6nk9OU3SCE+886ih13IIxXJ6TcoKm1BCLNEVM5/DNFAiUvraU7GIYPhPV3DcNaKyVQMJNrvHQ==","signatures":[{"sig":"MEQCIEctmatg6hjZvD9i+9CR744M8OMisrBs4z3vF1iRmIzCAiBt85jrM7zifmai4dpci+mfJSKbcfqOoD7br1M2ffMMag==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315170015.95e16d2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23393767},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"95e16d2b359e42d54747c7beaf629d849aa26c40","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315170015.95e16d2_1773594044789_0.0015877498796406098","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315171123.630e8b7":{"name":"remoteclaw","version":"0.1.0-next.20260315171123.630e8b7","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315171123.630e8b7","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e6d092b26167344e8c8baa6b981ca3b29898f093","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315171123.630e8b7.tgz","fileCount":2148,"integrity":"sha512-ZaQSxEZg7LKoHXSZs8zJj/mgIzXFcixJGFFb3JzY68xl7fscrgCQLdQ3+O60zWLgzL1EGiqMeCzYCWJJdrcW8g==","signatures":[{"sig":"MEUCIQDjA+vc+BfGTpUz8QcMSY05UHX6GnG0LzfB46C4pEtOOgIgRjUUEN5d4UHd+hBzH29BqsPgnscRfeuwIizzwVDsk+A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315171123.630e8b7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23395175},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"630e8b769b53eb70a969a5a18bffd769641e63c3","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315171123.630e8b7_1773594711922_0.9057503527595234","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315173827.5d4af11":{"name":"remoteclaw","version":"0.1.0-next.20260315173827.5d4af11","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315173827.5d4af11","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"b4c184136b6a48665bd246a8b7495739e71f46ed","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315173827.5d4af11.tgz","fileCount":2148,"integrity":"sha512-bpJLtsNArzd9OWIPsr2D8Z3P0vEHkaXf6dxax0sMRfTohl+uQtKRq6OuQ9MgVny3WpNgxijFZSH0vBFJ5/5Z/Q==","signatures":[{"sig":"MEUCIDC7o3isN/E5DmAVDivdy5xsBKYwvcJo67bkMDO+D1a9AiEAjUsZbtvvL/e6MM4o43t8M8bCM1b5KYdwz1MwexJwNb0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315173827.5d4af11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23395223},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"5d4af1147a55a491c9f738364a39cb575968b602","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315173827.5d4af11_1773596335970_0.42041269380340407","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315174803.a47ae60":{"name":"remoteclaw","version":"0.1.0-next.20260315174803.a47ae60","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315174803.a47ae60","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"81e31c699e45b1569b6b2a8d84a16385cb82e795","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315174803.a47ae60.tgz","fileCount":2148,"integrity":"sha512-xo23lk646gqlBZfDVg8AjduidTq/56ECJ/u2zog06PZ3luWwvR4AfMB6EnF0IlypjCyp9GhyKLszzkgA0gzP4g==","signatures":[{"sig":"MEUCIQC4yKJtihIZ1Wxmupp9XtLjjAE+hvgbmzgf+pZjXUcbnAIgf7OXRL32o+0/0KF5ZLIUtn+pTPVXTyt6rLiLkQ/QDwA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315174803.a47ae60","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23399709},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"a47ae6065ef0319a300bb41abc80fca6817989b3","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315174803.a47ae60_1773596913484_0.6248628115363686","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315175744.e4635fa":{"name":"remoteclaw","version":"0.1.0-next.20260315175744.e4635fa","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315175744.e4635fa","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"241c89786102d87b28a6d3248dcd187d253a0647","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315175744.e4635fa.tgz","fileCount":2148,"integrity":"sha512-F3GgVDv/zEc54YhVXXeyCeauopWHHZwd4M6iXKpm7rsbcIMU7909Y1bmQ98Rgrv91YRtFyRcJVl+0O60hnhUmw==","signatures":[{"sig":"MEUCIQDcfWWN7LLLaEP47CvfrfhBC9aXmgHFRcRBxbPgqy8G4QIgZkUyonL38EBMPyXkzFTmjYlob/pFixH6zNnm0okuM1Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315175744.e4635fa","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23399713},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"e4635fab304914638aa358d9723d74cc5c22793b","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315175744.e4635fa_1773597494743_0.13951772231680204","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315180727.5bc80fb":{"name":"remoteclaw","version":"0.1.0-next.20260315180727.5bc80fb","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315180727.5bc80fb","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"9c8778a5066a084fdb6ba8d8d27caf68011d4358","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315180727.5bc80fb.tgz","fileCount":2148,"integrity":"sha512-BSDz1q2/myOzDSaZ+b7XoSEN2tkBHM/BugKTihuGiXvuN/KXyX2Yb5vqSVOk1vuQcjefkiVTe4GJq44w5FCLkQ==","signatures":[{"sig":"MEQCIAGsWWCluEvxOpQSl4FlDtAXPcLodvN9i+U55iJo+0rRAiBO8B+g5kxvRNyD9Ff88TX4Fou1DvGqm8rlYVFXx5DxRw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315180727.5bc80fb","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23404720},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"5bc80fb32f0e19fe32d85270ea026ace779d5e1e","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315180727.5bc80fb_1773598076910_0.5842864670398471","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315181746.aa6d3a6":{"name":"remoteclaw","version":"0.1.0-next.20260315181746.aa6d3a6","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315181746.aa6d3a6","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e32cbf2b96f65199166a939922713826ce678738","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315181746.aa6d3a6.tgz","fileCount":2148,"integrity":"sha512-9IlGSnpkR3IYnIQRzT4AVyMnnHO+yc8vTuDiW5ZkrJ9qDwxXQor+QjuMJjLcUVO813sjpsg5KnhDvCc5V8YMpg==","signatures":[{"sig":"MEUCIAKpsUeelpHX4/4/gbeZ0pmjRQAOqNH4PRXtmmc5Y0ORAiEAi94QpKNKEbnn0ob9q7Wffn0tkL1MAR2rocP4tLdGjBE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315181746.aa6d3a6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23409871},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"aa6d3a6f22b301e988dcd2c4b598448325bb6c5d","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315181746.aa6d3a6_1773598696471_0.7579821841984751","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315182915.99c252e":{"name":"remoteclaw","version":"0.1.0-next.20260315182915.99c252e","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315182915.99c252e","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"c6ed94d51017983bd5e1e5018b9bf8cea9036ef4","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315182915.99c252e.tgz","fileCount":2148,"integrity":"sha512-njq/b7dzF1DTMQ78AcH7dzv9uhOuwzDmPj1ak4GI8Iow62SK5AMXapud3rbTXmA/l9aMrkvG8sJHbDhNW1Ddsw==","signatures":[{"sig":"MEYCIQDdrjyQoM1t3fqPEwjO1pWtSPVCeZaf7vnBkxZtgELgzAIhAOOjlAoocJDjeaNEJ5w0/uezaOS+SploMhn02Tv9sfX4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315182915.99c252e","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23411191},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"99c252eb8d38bb59393f3c13771adfc7bcf6826f","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315182915.99c252e_1773599384853_0.723680993692501","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315183854.bd6be8a":{"name":"remoteclaw","version":"0.1.0-next.20260315183854.bd6be8a","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315183854.bd6be8a","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"7845b2d882cf31f51e4d44df705e7028b74199f2","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315183854.bd6be8a.tgz","fileCount":2148,"integrity":"sha512-OLGhJ0xmwGwB7IkncfXsZ6QyEyISU91oWhChiBJzQygpetwv6tXvv9/xkccLkTgrC5m/KQjH07cNgJLlbKBzuA==","signatures":[{"sig":"MEUCIDuO0MV9AgfnEb5VwS2HxFxnxa6F9eCh4pm9eqJcPyO9AiEAhUPD2XiaQNN/X1QDAPkBKapXnk/MM0RyFY556mGAObY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315183854.bd6be8a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23415096},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"bd6be8a551e8ed78205e9deac1dab8906ee85a53","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315183854.bd6be8a_1773599962030_0.9850886214521335","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315184833.414508":{"name":"remoteclaw","version":"0.1.0-next.20260315184833.414508","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315184833.414508","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e1c8167feb72175c80a66449f65f04955ce7a61b","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315184833.414508.tgz","fileCount":2148,"integrity":"sha512-AzIwe8DQjBFuoXMzMUzcKdnrdVrHDHpiCdE3suXhCp9wJ9iLisjxuWyUsDdGvggoj4Z/g0YnXqCBZdKuIno1Rw==","signatures":[{"sig":"MEQCIHbweJmq5RsNg9m/FWafUoE/+za+HUnCNB93ypUtWz/VAiBIGjZWyJO6QgvZ7SWBFLtR0dcPHiAnSpaWBI9CkGWfcg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315184833.414508","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23413008},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"0414508527f9b7f47a0054cbefc4bb2503d9a33f","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315184833.414508_1773600542963_0.1799788104288942","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315185832.e03a6b9":{"name":"remoteclaw","version":"0.1.0-next.20260315185832.e03a6b9","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315185832.e03a6b9","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"7e234842f56d41eb0c27d390623b40f54b304155","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315185832.e03a6b9.tgz","fileCount":2148,"integrity":"sha512-2SOsPfJMhRCw5j7/g2XIaW55vIqdny96vFW6k6TPEjLpWEFk8ZezjJiNPivKRpoSBFL1291Rdnz1EPWj/f8E9w==","signatures":[{"sig":"MEQCIHB8VHpMFhi75zrCK/3irUfKlFaxq6p8Llc/OPqT3BujAiAI+JnZwX+7EBEhRZXCibP2aN0NigsxTkIifqI7CcvbVw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315185832.e03a6b9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23430692},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"e03a6b9917b25e0366015d5fbc87989947817964","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315185832.e03a6b9_1773601140732_0.027147277329464536","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315192449.7aa7717":{"name":"remoteclaw","version":"0.1.0-next.20260315192449.7aa7717","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315192449.7aa7717","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"fe01f9b0b641a75e3804f94097f3286a760c5bf5","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315192449.7aa7717.tgz","fileCount":2148,"integrity":"sha512-1x+yO8skbwFg169Ov0Nbm0qbvWJHijPl2jtRI3dpSHW4Fvhw1EIjCf+zeGFPNs5fsawT7IFu5IxhV7FuCjZfSw==","signatures":[{"sig":"MEUCIHXwGU8nZ4lz9/LmbKw5j4DwDmnirWVPkDII1kcVh263AiEAriwKE4fuJq1FsiExpbyWfsIjf8X53PLlVsOLrDBFj68=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315192449.7aa7717","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23432130},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"7aa77171e4e7ddfa67a54a43f44bab0c08654d92","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315192449.7aa7717_1773602719084_0.25327393905869466","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315193426.240ca84":{"name":"remoteclaw","version":"0.1.0-next.20260315193426.240ca84","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315193426.240ca84","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e8c2257ae12975490a6c3bc2c6fb1e7e6c09adc7","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315193426.240ca84.tgz","fileCount":2148,"integrity":"sha512-m0m/YhxB5P5nbyowh8VNg0VZuUxf/alASfoMjWLB62iXqgi2lo2g+mJoqQEylaiZuSdAczrTiQVUm8/uOrLejQ==","signatures":[{"sig":"MEYCIQDnQAYWiVVPmpNviasMLnlaZwCP0PsD32CI6f6ZobTZtgIhAJvXvHKClJ5nLWbD0+qp+fz3qurTrjXizH3blSkkztcY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315193426.240ca84","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23432146},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"240ca8429a71549e77274d645ee865fc14b80776","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315193426.240ca84_1773603295753_0.05355021037688612","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315194414.538ac2f":{"name":"remoteclaw","version":"0.1.0-next.20260315194414.538ac2f","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315194414.538ac2f","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"26d80d1b0253fb0536a3fd87f0f2a6429d6f8388","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315194414.538ac2f.tgz","fileCount":2148,"integrity":"sha512-1hHsYQBBkNoroSFTpngRqKr+fxjl1RzlwMLEADjKUMSSRQ6OBaVUqy5ROBESsF8qlVOyi/WfT2p2XMBFnCTjKA==","signatures":[{"sig":"MEUCIQDuQ2Xghk5I24inleGqhLbZDKYLKYslMr09kyL1/xaJzwIgICjp2Ws8ud6yiKlZuws796mT+0X2r0q4/l3q3dHQcOI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315194414.538ac2f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23436195},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"538ac2f127ca88ed55c1d8a17882a477496ff288","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315194414.538ac2f_1773603883373_0.2514827445414052","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315195312.ca9e6a7":{"name":"remoteclaw","version":"0.1.0-next.20260315195312.ca9e6a7","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315195312.ca9e6a7","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"ec7a4e1ec70bdff3e16ac3e7bd64abce1d1d2816","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315195312.ca9e6a7.tgz","fileCount":2148,"integrity":"sha512-USKg7oIdBqJehJ/IZUtxdSdSDnMhjcAvii4cFE9rD5qDhG+KX+EVkbL7Wu0ucCA9LNHme/wJF71UUDia89KB0A==","signatures":[{"sig":"MEUCIQDrONMYY+msMniuoOkCClbNgqy51nXCPukNQK/1QeeQQQIgPNZOF73bRjHr24XS5jhPT4S+qqFl5LxF7vLIPN6EXn4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315195312.ca9e6a7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23437137},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"ca9e6a70faa7ba996b9510ebccd20259a1bc4b7d","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315195312.ca9e6a7_1773604421432_0.2735582281962099","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315200243.f6b1fc0":{"name":"remoteclaw","version":"0.1.0-next.20260315200243.f6b1fc0","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315200243.f6b1fc0","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f4a26b914a33fe5d4075f353f05aebbbe1bc0be3","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315200243.f6b1fc0.tgz","fileCount":2148,"integrity":"sha512-vo4N8vs4CChLfB7SttTMs35P2o+jpEoJXy1j7wjcQci/f/Aaa6kJwgjRVHv/1KM4LwSuSuFHFKyOa/z4Dcma2A==","signatures":[{"sig":"MEYCIQDI8JaIw1m29n8VUeZwCtLYQIQcmieyDiNVXJ5u9N6lWwIhAPxu2ta1XK6NPoMvN3rPNqwxjMt1Da2HMo2Ohsu6+Oo+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315200243.f6b1fc0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23438463},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"f6b1fc041ad149d3630cce761c8783ca1053dbfc","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315200243.f6b1fc0_1773604993369_0.6593511877755627","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315202501.c487de2":{"name":"remoteclaw","version":"0.1.0-next.20260315202501.c487de2","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315202501.c487de2","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d36efd653ee185e36415e55bb396d44c61be5661","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315202501.c487de2.tgz","fileCount":2148,"integrity":"sha512-TygaUT6HhQmzJgr8jWxcoIj/pgi30fiRMKYTIVgabsXErpXvF1Q8C6P+qo7D9cNpLH2UgPmuby++szFo/y6Czg==","signatures":[{"sig":"MEYCIQC4sI8yOLWa7VAdafByns8LvvyTp+2bC2UUxyvnSXPh4AIhANiyzLduEE/5TuD4blrhy89hZPhoKJhRv9pJloX3eoFk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315202501.c487de2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23442758},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"c487de268072d5fc33a83366fcbbfd146b986a28","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315202501.c487de2_1773606331779_0.6194893764318317","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315203445.1a81f7e":{"name":"remoteclaw","version":"0.1.0-next.20260315203445.1a81f7e","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315203445.1a81f7e","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"cfe9f1ab991c74f005b12fa3d579df6145bdc06b","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315203445.1a81f7e.tgz","fileCount":2148,"integrity":"sha512-MSYsn/wHcBAk2hVb2OWytt4aSSA4LsFR6bgf/R3RbkZY3HgfOdzqXhYjT0ZSx7wCTO5HZWBVVcShP3a7P1cwgQ==","signatures":[{"sig":"MEQCIG6lReyVM2gahVv23P+vUCnIixUifvp3xo7bDoB2b6aUAiB3kbMbgwc5xlMVD78f1LzWqiLWQKbrrK/ztDDsYq5IMA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315203445.1a81f7e","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23444436},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"1a81f7ed848e36cbe51b35f8e6cdefdaa10f2720","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315203445.1a81f7e_1773606914265_0.219836617085998","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315204418.568f8d4":{"name":"remoteclaw","version":"0.1.0-next.20260315204418.568f8d4","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315204418.568f8d4","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"b8a8f3f002c2f42f0dd709dca09aeb6bcb0e5344","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315204418.568f8d4.tgz","fileCount":2148,"integrity":"sha512-UrD3rNrqMW/Yq7NmF/U2Bv377AgVRyne1aZFclZyW04Mp1rHgG8lFPFoZdEQ4kzascdXUxmbn6TPZLQ8ElhlTg==","signatures":[{"sig":"MEUCICHr7qBXLEtvhlzGziYSIaf/AcnjFcjgoge0qtXozEnxAiEAh8vv/f8Dl/DXhVYMWZWE7r5ihMeDOtSgiQs1ZJGuCFc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315204418.568f8d4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23444921},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"568f8d45e533f554998d1d8abd97ce994005d430","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315204418.568f8d4_1773607488585_0.44507306229361077","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315205408.d23aa6b":{"name":"remoteclaw","version":"0.1.0-next.20260315205408.d23aa6b","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315205408.d23aa6b","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"99a4dc7021b0f561cfe8fad8b3834dba18cc3628","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315205408.d23aa6b.tgz","fileCount":2148,"integrity":"sha512-QMnq3Co7nNHbpAODAinPMRWiLB72CNfEweWygf2+1vxTJz6N/sL8Jl7a7BCDzFnJC8MTu1akRPfPIenErceN3w==","signatures":[{"sig":"MEUCIDGwA+b0T8ZaeZeR9s7VyuZWEzl6tnGSq+sbqaojMyWcAiEAw6mbwX+/ue/Cc9aAAeyqtIntbvBN3ZFWcTsHz3fc06w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315205408.d23aa6b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23449530},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"d23aa6bdcb932b7122278d48305c64eb573d1734","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315205408.d23aa6b_1773608077904_0.5082380006115141","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315210400.cbea75d":{"name":"remoteclaw","version":"0.1.0-next.20260315210400.cbea75d","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315210400.cbea75d","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"941b3dc2f8bbcd9ba0c182721432f00b1766e8b9","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315210400.cbea75d.tgz","fileCount":2148,"integrity":"sha512-w6++FUArAvj8v0ljyxRv4ekpVD/mMAmZ5cpXCafkNpzofoKdcb+hWsiHomPRmCf4IoodN1jMPZ01qEum3ZWNRw==","signatures":[{"sig":"MEYCIQDU8Kkpjw4NbTEiyTC/Flh0hPqGAsnsy4iH1rq+hlsiMwIhALTKjbKit9nGR8wIs7OodWlO9SRdYxn109o94UUUwVnm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315210400.cbea75d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23454177},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"cbea75d2e5395975d6af4fe67b4de939ff9a8ac2","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315210400.cbea75d_1773608670534_0.03315261285670257","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315211314.696bf64":{"name":"remoteclaw","version":"0.1.0-next.20260315211314.696bf64","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315211314.696bf64","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"286557b546ca5efbcf95911bc09b7cfbccada189","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315211314.696bf64.tgz","fileCount":2148,"integrity":"sha512-IVnZnlhqMrNEgKsEzYn0nyy6PmBCk/yG/MyUv+7AtJmRNVRzmNGfnqcuElbeimkSCHC9MJuYykQVinI2iRiBzw==","signatures":[{"sig":"MEUCIDcxrgyoAMQZzaz51VK8ibloflNHvmrUEYTxtTRRayARAiEA1dJzdb0tWKNLAID329Jd3g2NiBDSxuTFmaN4XheuRo8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315211314.696bf64","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23455969},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"696bf64641fee264f359ef2637fc9b4bd637d527","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315211314.696bf64_1773609228603_0.07472119098988128","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315212415.af856e4":{"name":"remoteclaw","version":"0.1.0-next.20260315212415.af856e4","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315212415.af856e4","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"cc37c4597db8ff283af243b09a3b4e46e0b3cb85","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315212415.af856e4.tgz","fileCount":2148,"integrity":"sha512-yUoFOpf39i4MZbiEZUCEr3doclBYbWUm3KNB+/3XFSVDptHoCP7bhrug0m9v7kNe9a21259EVDq706g17zrlhw==","signatures":[{"sig":"MEYCIQDoxZgFx3RQrj94Lw4F43waIod+2oQUCDnlelleyhBU2gIhAPlnb96P9x66P9QNo46Y1c1k1CpqPQ6SpWVfzdEVzGFd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315212415.af856e4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23456352},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"af856e4997bb5d9c61b0b661c7e56d71a33983de","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315212415.af856e4_1773609884918_0.30207585218123634","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315213320.fc170fc":{"name":"remoteclaw","version":"0.1.0-next.20260315213320.fc170fc","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315213320.fc170fc","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"67565db61cab6010af82867bfa27d4160820f8e3","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315213320.fc170fc.tgz","fileCount":2148,"integrity":"sha512-Dtcc+Gc/hcQpmmKzFIQCfODThmyQ+8mVW7e3864PXcTziaDyz7XYtQsYVeDD+DTF9HMavIf09N2cBhVH2i2dDg==","signatures":[{"sig":"MEUCIQD2oNmQ5jXhKRiSlApJHBd/mUOv3JuP7obqja6w8XWv0wIgJyVgtlx6mUy0t8A5kdFtajd3cGXFmqOkNfE27FmT8/U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315213320.fc170fc","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23456671},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"fc170fc08ca71e85f6c17ab0f275be67d886dae6","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315213320.fc170fc_1773610428619_0.7944698284030232","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315214252.d80d4af":{"name":"remoteclaw","version":"0.1.0-next.20260315214252.d80d4af","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315214252.d80d4af","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f09aaae383a0fd63826863a4c9b437b0d0aa54f2","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315214252.d80d4af.tgz","fileCount":2148,"integrity":"sha512-vVnOzLDKwXIlHr8vB2gknQL1DZ2vB0Z3EjyTV8h2v1mJ3FYfVCYajVq4YVXcGK74dAXnx/dUerY95nfbs1XEgA==","signatures":[{"sig":"MEYCIQDEB1qDqL9FYY9uGV+r3oRjg58vw/qLCzfKbUkSQIXYtwIhAKY5ULVF1CdUyy8/mfDwIfXWmZqGEin0OLSClnvfN6Ji","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315214252.d80d4af","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23457044},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"d80d4af08499095d2ece83e7ad2f3dfdddf052ee","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315214252.d80d4af_1773610999423_0.47869538261685096","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315215236.7d474e3":{"name":"remoteclaw","version":"0.1.0-next.20260315215236.7d474e3","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315215236.7d474e3","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"7a42a5a62325e9c0bc885433c34831c9bf5a3fae","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315215236.7d474e3.tgz","fileCount":2148,"integrity":"sha512-MWxQogHVhqtsQTiC1t1z/dkt/XVu9ECZ6GsO20XpPp5pt+dbG+aFaqo//9wjBKeJq+UahrW5AJ7Fm1FIDf0BUA==","signatures":[{"sig":"MEQCICdJoY2dhx7pK58E/YR8m73pd+tS+BdU5VV45Ou5EglfAiBuQC5o1suoDIyraFnEFVb8224I3kpRlgotbshYIy0AJw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315215236.7d474e3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23457105},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"7d474e308d3fcadf9c1af50d792f37f85d594ac2","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315215236.7d474e3_1773611586630_0.22638258967364244","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315220230.d190a59":{"name":"remoteclaw","version":"0.1.0-next.20260315220230.d190a59","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315220230.d190a59","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"4ac17ae83a7d38e6b4456ee23a7a418fa45d8574","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315220230.d190a59.tgz","fileCount":2148,"integrity":"sha512-0MhUTSvbtybWP2FiWoatL1W0fkenmudyoIboUj/E5YEq0ieh9BowvNruRGr+y9oYwIB+Ssy6WOpQf4WdhyRB5w==","signatures":[{"sig":"MEQCIEAxWbeDoZqQW/PPA3+o1WESCmx8P2HRf2CA/gB+rsazAiBSBx5ahcG+k+kYB6yfR0yngtEszWUb6iokBSj1i0YAtA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315220230.d190a59","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23457562},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"d190a59464df5ed19d64942248de2d7e72343b53","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315220230.d190a59_1773612181022_0.07131682045249144","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315221552.babfe2b":{"name":"remoteclaw","version":"0.1.0-next.20260315221552.babfe2b","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315221552.babfe2b","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"129da47645acd24e5ad6c9b9c058fb57285c15de","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315221552.babfe2b.tgz","fileCount":2148,"integrity":"sha512-EUn8HGSXabJDpKnQFKv0XwxeCdLbr9dSAWUYQ0dC53bI3FlIKJfImXWTHJR+SWMe+HJMI6IPxUoQ70ZHsqV08w==","signatures":[{"sig":"MEUCIQCkfwSTKHTw+Hf5UHeAjRWIt3BId45UN10FdUc9WdhKZgIgcAcwMVGvvfkEWesaJSrghNvAFG8RdMTvpWQDmVNxbZA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315221552.babfe2b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23458285},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"babfe2b155513d959b5a8681accd7a334a326d75","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315221552.babfe2b_1773612982431_0.1018025674141696","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315222516.607f831":{"name":"remoteclaw","version":"0.1.0-next.20260315222516.607f831","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315222516.607f831","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"42ba578b0105de6d73ae94f6c9ba74681ade43e8","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315222516.607f831.tgz","fileCount":2148,"integrity":"sha512-0V4zcrrVpeKZvRLV00DXidUjLZUexbBp7IWNStuDFyYo5/S7MlUSi0/ijDvYV34VIMaRaw27mQXcY6Y/Meg2Jw==","signatures":[{"sig":"MEUCIB2w0GXfj5VhPKqmxTk+nJ5y0nMjqTSHk7ZVRhVB6T63AiEAjU1BBTlVYRwPQC+bVFJmIRkWlewUlA+3OsH8hGhFr+g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315222516.607f831","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23458540},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"607f831896100e280a890734f60376ac9b77e4fb","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315222516.607f831_1773613546496_0.7946087477110431","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315223455.af6bec4":{"name":"remoteclaw","version":"0.1.0-next.20260315223455.af6bec4","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315223455.af6bec4","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"7a28cad63f7f551cef9dfeda5bf94a92deeaee91","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315223455.af6bec4.tgz","fileCount":2148,"integrity":"sha512-k2KF1/xi0VASAj8977Tm8Kyo0iTRN7ZTf5MnmAv1MmC5ieoTTE1pas4QEacJg+1RiMxHCKWPt8m39UHG5kqiCw==","signatures":[{"sig":"MEUCIQCpg10duxkO/aZ33KA/5JDrRGhPBuPKdMN8quWuT2e7hgIgUQidU/BkwarBUEM0YluxIskwFJe8jiOstFuqTlHjBEs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315223455.af6bec4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23459293},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"af6bec4cb2b55bf126943cafdb9cabd21dbacbc3","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315223455.af6bec4_1773614124471_0.6272593651408689","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315224434.dcb91e5":{"name":"remoteclaw","version":"0.1.0-next.20260315224434.dcb91e5","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315224434.dcb91e5","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e8052e72a4d99b1978c61c4bb786be2ee61bc19b","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315224434.dcb91e5.tgz","fileCount":2148,"integrity":"sha512-ca7h7E8QOo6+hzLf7FZqeH+9r2q7I8qe2MN5kKvB2mZ0IonwmfhtGDcnyQSf1O5r9BLhc1iVb2BVJqv48mFaoA==","signatures":[{"sig":"MEUCIQCKB6XAbvSkUOLofBKsKs3/znXKFhAONvdt6jHkwIC3NwIgV+ArzGyOdWMncLYaVtqbIPsOaxhLNRr7MghiSUWD5nU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315224434.dcb91e5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23459833},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"dcb91e51fb2ec68674f18bc876856f33d69e0de8","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315224434.dcb91e5_1773614704549_0.9365558374426779","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315225425.5eb18ae":{"name":"remoteclaw","version":"0.1.0-next.20260315225425.5eb18ae","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315225425.5eb18ae","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e5abe85590aa2bde0ea6f2453cf7cfdb1e7024f9","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315225425.5eb18ae.tgz","fileCount":2148,"integrity":"sha512-HppbaiNPAHd0Yeamw6zNRNN3lfGCXTpFNyClijenKIMECnbwgXQRZXvFgiOuH5PcI/NP1dsShXUn9IBOEUdnfA==","signatures":[{"sig":"MEUCIQDiP3DbZiRPmhcxJsujuZOqf5YT8jlGf0O6LxRe8ohb/wIgZAo8osyHK1AqsXg7i8WqMncN4K7pZJwn/ypG8bHck0s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315225425.5eb18ae","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23464036},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"5eb18ae46a42ff1d1ce23b280c991461ba182e11","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315225425.5eb18ae_1773615295706_0.2927314657276616","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315230350.828f038":{"name":"remoteclaw","version":"0.1.0-next.20260315230350.828f038","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315230350.828f038","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"61aad5bd5467450359ba2e09e2c2a805653a0248","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315230350.828f038.tgz","fileCount":2148,"integrity":"sha512-2t3PsYTJjdO5lK7tk6mmk+OmwcoV9D5scKUnhvLhy1oPDwDIHwaDhynU2nRISOH02nxvnZxmT9FVcZo2RIZiSQ==","signatures":[{"sig":"MEUCIG3K3Ypc7GPXKxRmaa58etCgWpv0Q/w794nZ6a0+kv9vAiEA4mkiuEbKV3z5vT6ErxwQdO39vs/ZJPvPu1PtN89RLdw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315230350.828f038","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23464481},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"828f038d675a2c622e1c9ac3d8ec36aaaf1ebea4","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315230350.828f038_1773615859661_0.4838855609896964","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315231638.f8a1770":{"name":"remoteclaw","version":"0.1.0-next.20260315231638.f8a1770","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315231638.f8a1770","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"020ea3c610a8d38c41dd1a34f410f6a2095a06d1","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315231638.f8a1770.tgz","fileCount":2148,"integrity":"sha512-neVPGzQajO16buP9T/uSEDhyEWcXaze4Se+bORjVO9BWA8UybS8BHJFUo5kKdaqwnchU1p/PL0PVOmoGJ3+opg==","signatures":[{"sig":"MEQCIHrz5UN4+bSsqyuumWqccfKO/AEbnqGVpdzLyQaOLXBuAiABIpEKWRUhy5K/lINoBVSr/xk1nXKIGsgZSNAUq7TuTA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315231638.f8a1770","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23465028},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"f8a1770f5d00c4139745e4c5c46768eba955ca29","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315231638.f8a1770_1773616629040_0.6580387224373083","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315232557.d3103e7":{"name":"remoteclaw","version":"0.1.0-next.20260315232557.d3103e7","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315232557.d3103e7","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"cf0d1d9ae71979e45ccc3b813920040e6d1789a0","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315232557.d3103e7.tgz","fileCount":2148,"integrity":"sha512-IBxYjrKoNXoYsJGBn8zNEfuvxsmRamsrgZuyXbQhF3FrOcaXtKu4804Gw4M4Od4J7JJm/B7/A202vDlc1CGIrA==","signatures":[{"sig":"MEQCIBdJ3v3LtMKltSHjbsYdKSDH1A3m+VkRMTp9SCsYb8WjAiA7TKAcwW3AxR+wG2CQjPhgyimjVDNC2wmVpo605l9biw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315232557.d3103e7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23465076},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"d3103e737b822d8881c15f79a40d8e8b2126d071","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315232557.d3103e7_1773617187038_0.5708587250379249","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315234341.4098bfe":{"name":"remoteclaw","version":"0.1.0-next.20260315234341.4098bfe","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315234341.4098bfe","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d093fc9191326daff84d6a409f0f1f73705d13b0","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315234341.4098bfe.tgz","fileCount":2149,"integrity":"sha512-QA2JOZzzhPIM1iD4JILBXAonPYwPwWYJcHc74qY4TAIILbB4Qzq4/JBDVTmazvcVU2N7AjNab23egWfPlLbJbw==","signatures":[{"sig":"MEQCIEf7m39ULkzY5AiHh5bmYuR+DiBXqKIibQV6M+pCv6m6AiBieUHSlaeD8JSdyqN1jt1+WK7VpycYBLlgEx3/qraqow==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315234341.4098bfe","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23467969},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"4098bfecbc26bfd003be1fa7451edfbd5bab5d4a","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315234341.4098bfe_1773618250853_0.08619712073808583","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260315235332.8fe3454":{"name":"remoteclaw","version":"0.1.0-next.20260315235332.8fe3454","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260315235332.8fe3454","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"66049b39bf148b6b18a789c2e779e94b7f34a0b8","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260315235332.8fe3454.tgz","fileCount":2150,"integrity":"sha512-b+i2b8/2TYR59dW6nwLATg4cOgAXYmQ9GbKj9AD57ZkY1U/ddC81GYqDwr7NcSMhzv+suvsUE2a0La+gmChDJA==","signatures":[{"sig":"MEQCIAYBxlVTX7l6NlrCuNeuaDDKSKFfrQ6O5I60W807LP0jAiB3RB4ByFXAqUyHb59Mfv2CxEPamBt9/CQE0X98Lg5R1A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260315235332.8fe3454","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23472409},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"8fe34547c3dbda4731b48d53a2ebe2299a63dec7","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260315235332.8fe3454_1773618843319_0.0023427679842553673","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260316000347.6d32296":{"name":"remoteclaw","version":"0.1.0-next.20260316000347.6d32296","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260316000347.6d32296","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"73a5c0a1ef9b21a9a98cc1bf93d36e0ae431a55d","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260316000347.6d32296.tgz","fileCount":2150,"integrity":"sha512-hJxjQPb65UHyhJTeucCyIg52bFbPPYfFI5zkqgVU/hEs14xzgzZPDu6O2qh8SInHwDVoa9q1N3DprM7eMpdhqQ==","signatures":[{"sig":"MEQCIChwCtFOBZYzSBquaui1chXmhjgEA6btzX/MWcQw/YrLAiBV064zL2NisG3ge2mWc1/VUftaLtbJpVMWH6zrrrbefQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260316000347.6d32296","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23472585},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"6d322962146fb737bdf8316d27cfd03f6d37c006","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260316000347.6d32296_1773619457165_0.6948635278500519","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260316003859.e62e4b5":{"name":"remoteclaw","version":"0.1.0-next.20260316003859.e62e4b5","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260316003859.e62e4b5","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"528a0e4dd18b0eff167efca8b18f225a9e9ad9bd","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260316003859.e62e4b5.tgz","fileCount":2150,"integrity":"sha512-c3hawYAynsAgZbG8LwolKsoTxyZjrE/K0NFloJYIWDgulrePv8FeVIXP9Ok5rJ22Ufy84tNTUrMwrzFdC2cM3A==","signatures":[{"sig":"MEYCIQCV1/gtPyRncTNxU2rlbTsSRIl1j5DdiyOyPo4RHXaszAIhALArgxByrWsZ5sfSy9UblE9meJcyZOqQJ6GNMMN9zQ9n","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260316003859.e62e4b5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23474348},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"e62e4b5eda64d77a568c8ad30af1bf2fda65f5d5","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260316003859.e62e4b5_1773621568937_0.32921691356112803","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260316004823.98ff073":{"name":"remoteclaw","version":"0.1.0-next.20260316004823.98ff073","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260316004823.98ff073","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"8e268eb1182d67037746c89181c6ff93ee851bd7","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260316004823.98ff073.tgz","fileCount":2150,"integrity":"sha512-hSkNgK8BV7HNJgaoz+S6s8Y8rDU8BQ4HQ6MqOvoeDEcE8pJxlKcnbDE3wyKI4MYvCDcmWqRfgPB5YwMCTW3Hgg==","signatures":[{"sig":"MEYCIQCdLsVuTTF7bgXSVMW77ECraEl+s3R58FN3UzU16dwl9wIhAM/JD9dHvVZEcWQeHgzijCaUNEt/9vbpeUG8Q3kPuYoD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260316004823.98ff073","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23474344},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"98ff073f740fccff8a4d30e8e81a6007b3688ce1","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260316004823.98ff073_1773622133061_0.5097308410274073","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260316010711.4ae1e98":{"name":"remoteclaw","version":"0.1.0-next.20260316010711.4ae1e98","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260316010711.4ae1e98","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"4d61be92ae6cdb76eea877a769e8c994516459d3","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260316010711.4ae1e98.tgz","fileCount":2150,"integrity":"sha512-B1SDhnkqQVJFDqOzfQ44QyumWl+UQuLWQxiG0EHAq4ohr8PWMnW+t5E7AOJHJ76bKm+VBs+b6nuj7AiDOhvv4A==","signatures":[{"sig":"MEYCIQCrqhealtokGKEgjxgB3UyAd4JVNTk5iXpIbBSBCedugwIhAMaFehInhsVkBCX2MjcqcvLUbTQrOLJed4pk1k5aLLB7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260316010711.4ae1e98","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23475242},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"4ae1e98cb94780182f4429d2ee6cde11986aeb88","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260316010711.4ae1e98_1773623261317_0.8209574927571528","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260316012436.774bd98":{"name":"remoteclaw","version":"0.1.0-next.20260316012436.774bd98","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260316012436.774bd98","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"2bf714a0f6f930052ceb3a50f47cb2bccfd04f93","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260316012436.774bd98.tgz","fileCount":2150,"integrity":"sha512-TPJvpIsc/RLv/TeqimyT0QWpUfjeRbTbJas92P6WKR5mUJKX+TPpj5ndoF19IB0UT1uzExDpNiwtpP5KC7V/Vw==","signatures":[{"sig":"MEQCIH+CorCeiYIeNC5QV0b5vZp+/lPM6c2mMq+7trHe1HbdAiBsKJpEQ9mIs4MIl2rLAL6nrjHD4wg/rvAh1vJLlWBEdA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260316012436.774bd98","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23478220},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"774bd98d5671b18b8fc0b367f746f2c44ba93ec4","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260316012436.774bd98_1773624308596_0.18605985543829595","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260316013439.0b9bc9a":{"name":"remoteclaw","version":"0.1.0-next.20260316013439.0b9bc9a","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260316013439.0b9bc9a","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"651ec2e1aefd3c0e2c7c3b3e142e81d49b7c4f0b","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260316013439.0b9bc9a.tgz","fileCount":2150,"integrity":"sha512-Q+pINqhkOd+4doTc8ZJpO0YXoLuYU9cAL7bcayCS75sGCAJPTsrzvJPHbgL87VC8OFGw9pAKXc5c1XqkX7c/lA==","signatures":[{"sig":"MEUCIQDJZsjQgnc82FNjAyplMkjFIX/2A1ow3L6PxTdTQERlfwIgKQCyIykHiQxtDxEt7q+pM2T1G4npKRtEFaPi1Lv8YRs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260316013439.0b9bc9a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23478220},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"0b9bc9afcc85d4b982d18a0fb652ede5ceabd56f","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260316013439.0b9bc9a_1773624909025_0.47070499594664805","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260316014822.bd777c6":{"name":"remoteclaw","version":"0.1.0-next.20260316014822.bd777c6","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260316014822.bd777c6","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"c5ba1b61e9b54e7a051855df5a83378c2944c541","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260316014822.bd777c6.tgz","fileCount":2153,"integrity":"sha512-suT5zZFJkPvGlMMt/LZJrn02aeh+bHjfhMRvvGjVn5qsWA2sAO6GgaGuOIcft60GPCo5dunjyXE9uTOFUtIebg==","signatures":[{"sig":"MEUCIQDhyU6r6mRHqInfp9Rd7OlDuvC1t0S796f5y9ji9pXzygIgNy5WIH7uSM9CnY1Ebn0/3+b1u+BZhdtrbPXu7kr+93o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260316014822.bd777c6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23513281},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"bd777c60b82601b889b5948a14f05390b04966e2","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260316014822.bd777c6_1773625731125_0.09322695665583547","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260316015845.d77d0e6":{"name":"remoteclaw","version":"0.1.0-next.20260316015845.d77d0e6","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260316015845.d77d0e6","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"adf4ed9e86661c6147277836aa3ab31620f26046","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260316015845.d77d0e6.tgz","fileCount":2155,"integrity":"sha512-R6mFaCjHCbiGFxUpjrVx634GHVpRU5R3OyIn/KnkZStw+7XDAdjGbdVEoX48qLgxaE7IwW7QTXolgjcHtfP3Aw==","signatures":[{"sig":"MEUCICKhLEnw9iUbrxSYB/96D+GrL5A2GTkU9sXcB3kzM9omAiEAlEpIHGmzqsTvoMhAZjbm946Qz/8ArwPE6j8IpTfQ83U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260316015845.d77d0e6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23518258},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"d77d0e6326129d9fbf48c2701168237d7e632a4a","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260316015845.d77d0e6_1773626356142_0.4109212906962789","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260316022842.8e36041":{"name":"remoteclaw","version":"0.1.0-next.20260316022842.8e36041","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260316022842.8e36041","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"899983cd138692e991ecbc6ad87eecdb1737b34d","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260316022842.8e36041.tgz","fileCount":2155,"integrity":"sha512-POEp8U+1KYFAPDhc9y8dg7RG9ImnAExFXn5nvC+lhYzD5Vt2Co0xuaTfnxJAMmuH71hS487TBQf1gnu5USX8Sw==","signatures":[{"sig":"MEYCIQCD6FM+0IowDtMOyE6+CMqgc7fQD/v5Rsb8kJjBqNg5pwIhAJNw9HoIk4GHqR+ctq8qD3RbDGm26q1NnXZlDDgXJQ80","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260316022842.8e36041","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23523160},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"8e3604176c2fdf770109d6803f3446896fd1ea71","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260316022842.8e36041_1773628152433_0.6796605770055275","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260316024859.d774cd5":{"name":"remoteclaw","version":"0.1.0-next.20260316024859.d774cd5","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260316024859.d774cd5","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"2c3a2c2f4ea46254d4b1cda1520d3806155a9504","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260316024859.d774cd5.tgz","fileCount":2155,"integrity":"sha512-M2/Z44xaRSzFX+SVyVXP2eOmOFRjt8ceF7HAi9omY0EiObv3ErAPEoopNmBkW1RUYNb6gBXR87Z7VNq1dZB/gQ==","signatures":[{"sig":"MEYCIQC+n9E8Y8GLgG8GfFGok+wfTV/JV6sORuTO6bDL49B93gIhAOqBGprZAr0WP0jU2VHkPTYj8Z39iFOvycwLDm4hyQQ/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260316024859.d774cd5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23524526},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"d774cd5bc12a52797b161098a0462c5eb90d905f","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260316024859.d774cd5_1773629369356_0.29873816961989896","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260316025913.cecdca5":{"name":"remoteclaw","version":"0.1.0-next.20260316025913.cecdca5","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260316025913.cecdca5","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"adcb572a110354bac264cdb990d38679abe6de82","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260316025913.cecdca5.tgz","fileCount":2155,"integrity":"sha512-zfHwZdqNFZ5EMzOcQfQX/QTGihui3e5kDDGh3Gc3CUfASdQWLIOcgejT9MgF56LS8fAnbnXszXTesPsfBfafNQ==","signatures":[{"sig":"MEUCIBtzCgmChXVLE3FcbxHm0xlxv3rWUv2OLPlSU6JrtTgPAiEAjiZxrpLozkg0Pkf8EewcceaD7/K9X/NHBFuvvgficCc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260316025913.cecdca5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23527089},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"cecdca52194f5cb6d2abcebc5cabd38a30f91d2e","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260316025913.cecdca5_1773629983462_0.6701825803001493","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260316030859.6b0c154":{"name":"remoteclaw","version":"0.1.0-next.20260316030859.6b0c154","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260316030859.6b0c154","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f9a59c80806763cfb5e5a4041e43b838638c0657","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260316030859.6b0c154.tgz","fileCount":2155,"integrity":"sha512-P7327LT0IYhyOlawffMU/s822VdMplFSoTUJDwT1+WaEAQ5AGPxZw/U7pKRxQFMpC0gGdwd+nUPw+xam6T86SA==","signatures":[{"sig":"MEYCIQCzR3RZwXX9R1bPKxUZxJw7S/EnycGI9O4lZNk7/Dc0xwIhAOACtG/cIRps+zxdM1kNb4KAXSjmU7cu+m8XSTOaXcHX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260316030859.6b0c154","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23524769},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"6b0c15471f367679afb9a4c16fc5c1517eaf5989","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260316030859.6b0c154_1773630570327_0.7950260909390303","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260316031810.de0bf42":{"name":"remoteclaw","version":"0.1.0-next.20260316031810.de0bf42","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260316031810.de0bf42","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"a6a11e3c10ccf5e511a88379a10ed8245ad42a4e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260316031810.de0bf42.tgz","fileCount":2155,"integrity":"sha512-herJrAC4ByHeqLD0kCH7lrorGRMzg4Ixxee7Ad3CmmYHjas1AT29dpAICy/bZjXaOAQDZn+1NMP8c7DjCLq5Fw==","signatures":[{"sig":"MEUCICm5G+DxegXHXWb5mzSg2v9YlBe7M/5wlL2uPR0ibb2GAiEA5gzTrAxnt5ZHVIdHHefwsGZeEi+zOcbkprZQ9ycU8hM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260316031810.de0bf42","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23524940},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"de0bf4238f391762941f769f45ef68f2ab2030b4","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260316031810.de0bf42_1773631119565_0.4136379719707457","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260316032801.5ecf76c":{"name":"remoteclaw","version":"0.1.0-next.20260316032801.5ecf76c","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260316032801.5ecf76c","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"b92a9fb182cd0486fd67d19e6ea0d594b29e4931","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260316032801.5ecf76c.tgz","fileCount":2155,"integrity":"sha512-PMRXdN/K+lNjPkzh6CFauHq11q/JSU1U86WrkJSPasxQ5qpg4WYK2MBAwMNvPn92/7sMzcHVQ5rTpo/fpKayqg==","signatures":[{"sig":"MEUCICaOHGEK2NLEGSHXep7giTV7lbIkjuZ2MXTpp1YIrKVFAiEA+sA5ICz9OVE7gI8Z2KkofcKGzx71isAqgutcZHyihQg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260316032801.5ecf76c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23525054},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"5ecf76c67bb132102cd6acf3dc86716edea60743","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260316032801.5ecf76c_1773631712096_0.8623943900298272","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260316033715.b28ddad":{"name":"remoteclaw","version":"0.1.0-next.20260316033715.b28ddad","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260316033715.b28ddad","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"95a4ed0b3d26d30956d785a8ca075ac1233409ca","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260316033715.b28ddad.tgz","fileCount":2156,"integrity":"sha512-Y5RB6969If12T9dhK9rLSgBNUEmbljdfACoVJ559Q6BdfadXbtirfiuo3/dSCCFq1oYDBpL5A/u2UIpzYdlpbQ==","signatures":[{"sig":"MEUCIGdco1oVdNJ9gSsyZSQOurVzzBPbZ5qGkPaLm8gXZTW+AiEA1sWyP25Lk7Z5P1QK0LfWYOpG/R1WL2wgBxrNpSUal/A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260316033715.b28ddad","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23527051},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"b28ddadc85344e4fb8cff0b588b33e94a5be11d2","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260316033715.b28ddad_1773632264710_0.12288729697631684","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260316034650.52184ce":{"name":"remoteclaw","version":"0.1.0-next.20260316034650.52184ce","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260316034650.52184ce","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"59dbc6bb3c3cb73ed9dbb7845a3b62b5be5ae5b5","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260316034650.52184ce.tgz","fileCount":2156,"integrity":"sha512-CgJJnLf9YMT9V/H22N2fJEac3DWnTGLKdU8c+2aIRR5TKmUX5UKTKXecZOjKVyqI2kZvE80oAGVw05ecFsCgcg==","signatures":[{"sig":"MEUCIAmQCNcx/ucoy4/ECahgkzl4jCSVw1swxWXkcXLfC9fAAiEA9mEl3LoxmVJd+EVsq+iU6WTO4opfTXH7PlYJkKNZiIo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260316034650.52184ce","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23527115},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"52184ce737917221b11c11bb489fed7045811932","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260316034650.52184ce_1773632840177_0.508213639755084","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260316035614.3514cac":{"name":"remoteclaw","version":"0.1.0-next.20260316035614.3514cac","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260316035614.3514cac","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"981b34d11231c1b9bd61100f744795115ce74ab2","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260316035614.3514cac.tgz","fileCount":2156,"integrity":"sha512-SEDL05ZpbsjC9jnXQsxWKNdps0vZeb1kyeXCoEri+ZA98e76dOMGs+bBhF/ZcS5T9iNZCJ4WVAUuOQy9Kd1PMQ==","signatures":[{"sig":"MEUCIEmS8hgw2Xyso/PAhX/2EIDb6nHbC6JCNNrWqsANpuVoAiEAh4NRzVBiBd5PgPOFs9Z+p0lmMyjbev7tWZ6YKaR3y6U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260316035614.3514cac","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23527275},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"3514cac4d6eac256bb13920ea3052cc2317a1b31","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260316035614.3514cac_1773633404183_0.9450382134546187","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260316040523.254ca60":{"name":"remoteclaw","version":"0.1.0-next.20260316040523.254ca60","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260316040523.254ca60","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d50609576860b3357be7ad26b6ae676d86be9cb7","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260316040523.254ca60.tgz","fileCount":2156,"integrity":"sha512-XJKdoIRI5QUN/Ansua24YlhND9VDK1nNeQO+ZlSRxca84UT66ch0oHtAiXg6p3IDTANaLKE7gJW+hdtt0CNnGg==","signatures":[{"sig":"MEUCIEXJo2GNS0jZVQeFv8lsH/5bxplmNziT/8N5D0Ar2Ua/AiEA/hdWO+1QWN7cQbj8+7JOJBvddUPbp75ZsNmutNJ4Mx4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260316040523.254ca60","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23527726},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"254ca6003aaf97c319ba0a6fd214f3952b24425b","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260316040523.254ca60_1773633951246_0.0048859963673262286","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260316041646.370559f":{"name":"remoteclaw","version":"0.1.0-next.20260316041646.370559f","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260316041646.370559f","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"362c201298601dc5cbaa41911af9f6fec98085ee","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260316041646.370559f.tgz","fileCount":2156,"integrity":"sha512-9o2PTaioHmBHybeSTqKo1hvOSW37DFB0khhlKlyCd0ZmTPv7IpHiPWUsHF8xFCQnDPZ2giLQNvjMHKFOQH5fMg==","signatures":[{"sig":"MEYCIQCd6cw0CE0xUPBrfwZxG7IU79ZADFscJcvt6tdJS6F3nAIhAIoPC0cPNfcpF3AtFNncFQ0i7K2MfFubfPZNtXxzPav3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260316041646.370559f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23527994},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"370559f8cd88a361a45e3fcd403a1a10c7f6d5d8","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260316041646.370559f_1773634636949_0.889894998220162","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260316043447.fb3afbd":{"name":"remoteclaw","version":"0.1.0-next.20260316043447.fb3afbd","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260316043447.fb3afbd","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"a0a972fb22a6041a7d5b9e0b57c3da359327d0a8","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260316043447.fb3afbd.tgz","fileCount":2156,"integrity":"sha512-OFIgLDCUg8cMimN9Uw4tYWeT/Gk9R8kUe96LvXqzShG3j2tfuDaSCT84BzsGUJLjoI92Ac5CR+ib3Jb77sVTIA==","signatures":[{"sig":"MEYCIQCBdhqH95Jj+bdgjc1Y3t9qxYsrWAgzhzpw4DGGU6nQugIhAIaYYA9E2QnAQhIHb4CL6raKTGEa8NaanIYUEXORa00Y","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260316043447.fb3afbd","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23528238},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"fb3afbd95ef2b2347cf97e80a7c8ba8978758f1c","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260316043447.fb3afbd_1773635716903_0.5816402038993451","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260316045331.6101cdf":{"name":"remoteclaw","version":"0.1.0-next.20260316045331.6101cdf","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260316045331.6101cdf","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"4264d58147e360c4170031f053fb428c665e703b","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260316045331.6101cdf.tgz","fileCount":2156,"integrity":"sha512-OmUn5Ikaic5bpjeBRmfLti/ckfjYgJ5mbIWyHWCsZ6j1clFzP5BHyiYPkQAWXiI2E7Ka6YPd6zRHtQwyIkNrBQ==","signatures":[{"sig":"MEYCIQCzThmcbv9jW94ff0SVsbTNPscK5B2e9LAzvx0UNcTnVgIhAOMY87jIB088bjXVHqrp802pgo49P5OoSCWfZ+YBW3DZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260316045331.6101cdf","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23528615},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"6101cdf426fdc4bb7cc92fbd59995ea3bb3cbd67","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260316045331.6101cdf_1773636840246_0.42019128848555964","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260316051748.dda7485":{"name":"remoteclaw","version":"0.1.0-next.20260316051748.dda7485","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260316051748.dda7485","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"de9d5a53d966d97e85312afda628e6e9c1589766","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260316051748.dda7485.tgz","fileCount":2156,"integrity":"sha512-sUF1EAVINszYlo6FOmYCJxo2ffWGLtujvxeKOBEc1EyoHzpSwt7mW5ycWKoBb7Jqq15oz7MEjyYMpJlUw0BhCg==","signatures":[{"sig":"MEUCIAdQwqnvPHbCeEOXb0oBkD8JLCVF7FapSTdScOBI4hiaAiEAzIYHWNRlUzCMLji7nkDJCoNf1jqGWah0gt+oGgcXhic=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260316051748.dda7485","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23529451},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"dda748583a7c8c5addaf28e88983b245693ebc70","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260316051748.dda7485_1773638298284_0.6118693767613601","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260316052742.d364230":{"name":"remoteclaw","version":"0.1.0-next.20260316052742.d364230","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260316052742.d364230","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"27937780958118a29ea1aa9f57a78f810793b4d6","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260316052742.d364230.tgz","fileCount":2156,"integrity":"sha512-p3n2A4lQV6d1rjfkyGtj1PIOfgBYOaXX83OvVSpCrhl7QDNEyuOPKrOxbzbUiMySeEYtbOPYeDrogIyO9CbgaA==","signatures":[{"sig":"MEUCIAufVg0alqAoMXBfQhw7OslIzMISdMgMDtg6kZr03lYLAiEAyM/UHA9+eCTgJ9E5GnARs6u49uH7Ry0s5NCQewj6L18=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260316052742.d364230","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23532687},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"d3642309e9fb6ca7828618a67133e134bf02214c","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260316052742.d364230_1773638891652_0.4145946772058071","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260316053751.5111dcc":{"name":"remoteclaw","version":"0.1.0-next.20260316053751.5111dcc","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260316053751.5111dcc","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"a8ccbb2fd4ec556d87e3bf961de84070d9823eaf","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260316053751.5111dcc.tgz","fileCount":2156,"integrity":"sha512-Mzij/V5W6iEGzmpC2YW75Y666rr1YHIRT3q9AvNCFNNbEoQt9sSewyz7COVMp7QHtFLXoplEPPLYyTfoFyFNEA==","signatures":[{"sig":"MEUCIQCVhD86fD+hjrRRvat2G7f2oBPD1o0GKAl/G/BLDlVQTgIgVV3SQTcnC/5IAe+zrbzqHpK0pyIaFPNGr4PNKfSv7Yc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260316053751.5111dcc","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23532833},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"5111dccd785ef8cd4a14310f7161ef636c4c4130","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260316053751.5111dcc_1773639499990_0.03458331925511904","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260316055425.05c950b":{"name":"remoteclaw","version":"0.1.0-next.20260316055425.05c950b","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260316055425.05c950b","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"12895e58e127e5b75321151dcf237bd147abd6ca","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260316055425.05c950b.tgz","fileCount":2156,"integrity":"sha512-B9Vd7PwvGtNjaXicwpTRDgoOF8Vt9CZ8C1X/kA2pMtA1RYQ2swKqlMwB/Tk9bdqwTfF0+a0AsAhu4/3MYffEEQ==","signatures":[{"sig":"MEYCIQDIxsIW0DeiF4NYSdiD+ReURKx8YdamQIqX4TbYlnDH/wIhAMS+5ejQUM4DUJFUFkI2mHKIXy08Gxu0kWfu4Wc79Apg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260316055425.05c950b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23531817},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"05c950b001d9ba1da148f4a07909fbffbfa5659a","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260316055425.05c950b_1773640494775_0.3791221323152363","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260316063515.ac93649":{"name":"remoteclaw","version":"0.1.0-next.20260316063515.ac93649","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260316063515.ac93649","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"1115a22cb0f607ffb0dec6947b3e42fe5170f679","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260316063515.ac93649.tgz","fileCount":2156,"integrity":"sha512-HZWG+cyI7JQ4EUAK3cORdvSqOxrj2CrDnVVVpcTEyqac8tfR42uMrE4v1Er0FjVTNrRT2HuT2DRzrSPfPt8+Tw==","signatures":[{"sig":"MEUCIHlqHHD15N62W8bZvdLGNey4i63fHfZL0gfUp5UYXPCWAiEA59zkR0fmv3fSIbOrPFhJwMSylS8vREO/ewUb7vhDAPc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260316063515.ac93649","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23531957},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"ac9364966b3b597124979718daf39e793a769892","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260316063515.ac93649_1773642945123_0.10088893431478985","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260316064458.15ec603":{"name":"remoteclaw","version":"0.1.0-next.20260316064458.15ec603","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260316064458.15ec603","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"b39cae0a26ac0a5c50d69ce4592ddec09354ef93","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260316064458.15ec603.tgz","fileCount":2156,"integrity":"sha512-uwXaRt8NkQ6tTJ/NaQmvonPeNa3wx5SCW5jIfpMbs224/3rDyjhaqk6UVYIWaLN/s1VIqSpNj697Ra1ItgGo6w==","signatures":[{"sig":"MEUCIQDTzQFwv9PzyscfpoRO/fp0lT/b2NBOOyKb/TQ1DkfJHgIgMKMptLEGqYuAzck39QtlYau0MOhNBvslP+KUtQWJjqA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260316064458.15ec603","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23531961},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"15ec603f40e33cda5447508b66d4026f16ba8012","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260316064458.15ec603_1773643529351_0.4236924234502051","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260316065647.c315bf7":{"name":"remoteclaw","version":"0.1.0-next.20260316065647.c315bf7","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260316065647.c315bf7","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"fb6e0dbae31559816a3863aa078eb74ad6be636e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260316065647.c315bf7.tgz","fileCount":2156,"integrity":"sha512-aEaw1V8P+zhnO3UnYmkFp0nsxf/5AHUgeEWCI1fCbAA6BOUb7ev50iqhk+Kt8fW9JQ53/VTB6cS1MMXn1VLGew==","signatures":[{"sig":"MEYCIQCCj2CZzlsoUCFBn8JsGFKxw7gBaTbNW8XO5okQSkTwUwIhAPcVhzdDKj+xhai/n/NWjUWGSfUZrRSa2Tpt8PmvLpcd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260316065647.c315bf7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23533311},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"c315bf72b04b3b5a5645cf3f40ef541cb67dcaa8","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260316065647.c315bf7_1773644237551_0.8186036282567224","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260316074621.ff9f69b":{"name":"remoteclaw","version":"0.1.0-next.20260316074621.ff9f69b","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260316074621.ff9f69b","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"1f236d57acb74bb12990c9e4b075fe53d7a20b9e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260316074621.ff9f69b.tgz","fileCount":2156,"integrity":"sha512-dxT2S4JxFOExuf5txTpXEUaxtGfK3WXAiXfC9tY/uiW0hIQaNVeriikHD02kguonAQdxEwlOBRGAmOi55fSVxQ==","signatures":[{"sig":"MEYCIQCZoTm8hDFU5zMW3TNi3eJ/z/My5qBnTVBWwYZiomHgXgIhAMqJ2cLHwy1pnKXqQxoGNEtcHD8Ro/6MMEPRtgrMplnx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260316074621.ff9f69b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23533433},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"ff9f69b6a5c8e41aee1131c003f855483b453b56","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260316074621.ff9f69b_1773647211218_0.8900887242469773","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260316075552.db6316b":{"name":"remoteclaw","version":"0.1.0-next.20260316075552.db6316b","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260316075552.db6316b","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d4590811cf1c200d4d1ea07d560f40b89b94a220","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260316075552.db6316b.tgz","fileCount":2156,"integrity":"sha512-7GWRzyIS22kU0jO/1flK2Xf8JeDoQei2aaNH3QZss8qc+k4WZ0IHvvUF80mBEIxD1d83nrhs3gPziT4brBOl5g==","signatures":[{"sig":"MEUCIQDRWNGPdLdMtou0VuGjMUvBvJLUKTVyHecn9rJ5vU+k8QIgNFfoYMe1E530cxtlugHhK1+AKE+wSd9Mc4TQMe2r2Xk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260316075552.db6316b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23533745},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"db6316b1ad8fb4af159ccaab45a9abe8ac7188ee","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260316075552.db6316b_1773647782063_0.35868996384870155","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260316080543.2bd2bb1":{"name":"remoteclaw","version":"0.1.0-next.20260316080543.2bd2bb1","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260316080543.2bd2bb1","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d1a90600c3c58f796d377857409608ff16ecfb57","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260316080543.2bd2bb1.tgz","fileCount":2156,"integrity":"sha512-nHPMSdU2HGmTG+sJwpYnbmEtHJQgYfEP113kjvcqslV4G2yGFSRQBSwt+qUKf3LMk1B0gpLhkycCPS5QzBfsPg==","signatures":[{"sig":"MEYCIQD0GDGfvCp+bV/Xha2vycEbGqg7Rpge2jcsSrUO+D0M+AIhAP5Jx71/NMiybKXA0l6xLgIh/4/ZyAq3qgzhKvx9R7+j","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260316080543.2bd2bb1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23533745},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"2bd2bb186fa3d8b2876897c45f3188374994c767","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260316080543.2bd2bb1_1773648370981_0.1485809448426425","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260316081529.6d45496":{"name":"remoteclaw","version":"0.1.0-next.20260316081529.6d45496","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260316081529.6d45496","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"bcbcfc3dfe0b2d901ae64fd0ac41c764f549db69","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260316081529.6d45496.tgz","fileCount":2156,"integrity":"sha512-XWXR7jcViImbnhSLFdUd+v6qCCz8Om2rV1U3Mo6wvPTDpl14xpXbnDhZtTGSmzfRwyJ9bsYfC35uTkGgcPWFtw==","signatures":[{"sig":"MEYCIQCoNngLpv2puL8cwJdhsyF3vt+h3L4KRA5/PRYRv3QVswIhAMiubrsJKyXg/sIQT9YtrCiBhV2k6FkzKLez7DWGKEhe","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260316081529.6d45496","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23533807},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"6d454961117282408a8a14f9f2382fa9bd96c6ae","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260316081529.6d45496_1773648959038_0.9879513682528245","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260316083447.0875cf5":{"name":"remoteclaw","version":"0.1.0-next.20260316083447.0875cf5","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260316083447.0875cf5","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f1b02b9601eacfaae9299307eeb42ba9060fbaed","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260316083447.0875cf5.tgz","fileCount":2156,"integrity":"sha512-6ZihAoZe1eK88p/LtDg5Q2hZA5aCcBzrcIpX/F/xTcFfnnuqvZI/IZ5Px3+hvF/YAswYq/zQIuZHeU43I4ZorA==","signatures":[{"sig":"MEUCIQCLbR/kj53Cmzif2jEowMqYDW1s/ZMFGgDF8hoCmy6kOAIgCu5WV5yxi3gd22AATXIUqyCCqqlB5NxX4k1BxGDREx4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260316083447.0875cf5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23534717},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"0875cf575799b08d982f4f717b8acf080364769c","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260316083447.0875cf5_1773650117987_0.9358737138099442","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260316084545.45c865c":{"name":"remoteclaw","version":"0.1.0-next.20260316084545.45c865c","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260316084545.45c865c","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"c77b0e3bc6436dec8f6acbcd8bd2a77395a8e934","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260316084545.45c865c.tgz","fileCount":2156,"integrity":"sha512-H4BYx+44d7ABYGnwnY3eSzyJyIN96UUOCuJmtlzTA3O6I6pkaaRYtaYEwhjzAwI2Ntn1cMf5154ZpIRYn/HAgg==","signatures":[{"sig":"MEYCIQD9TDdQyyXYE+kUiXqmWPgY7DImGhp0rc7sJpMBriTcggIhAP7L2PCTxyt0ObZ5zxpbwHvaajzXamHGUx36nziP0EpX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260316084545.45c865c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23535571},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"45c865c39e54451524801f35f2ef15c8d8fc2746","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260316084545.45c865c_1773650775248_0.22398380868712864","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260316085529.8ccc58f":{"name":"remoteclaw","version":"0.1.0-next.20260316085529.8ccc58f","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260316085529.8ccc58f","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d941649f4d6f733d44cb21e3a7183b5ff0018200","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260316085529.8ccc58f.tgz","fileCount":2156,"integrity":"sha512-49ZdLxJaA1azoH7tRc7rVVmcimWpnKsGk0SbM3TpujkJ5Ny5KvgDCPBbdLx8NuhhhwVncl1OC3QdkfWKvl121g==","signatures":[{"sig":"MEYCIQDj2rdab86pGFTsklIGYVhDmsmR8TF/3VqO+868puM89AIhAP5r4Idw4UsAGeeAIL4To9SBS8UbguPCv+mVWr+EH60Q","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260316085529.8ccc58f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23536451},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"8ccc58f1f53ecffc4e1aa23ce99821eeca20120e","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260316085529.8ccc58f_1773651359517_0.16984912761218207","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260316090523.ee31d8c":{"name":"remoteclaw","version":"0.1.0-next.20260316090523.ee31d8c","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260316090523.ee31d8c","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"8ee8a14a406d654deb54a572194e89301f5372e3","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260316090523.ee31d8c.tgz","fileCount":2156,"integrity":"sha512-HownVhLNnUfCz2fM/20j9bLFKGW5jUySd8KOA83XzLXIoVbGb4vIY6+3clDTou+e7z44U8T4OBG0Ktjx1k288g==","signatures":[{"sig":"MEUCIBSJZCafbrcmLET2jVq/DPrpqUypjheUl6EIHZmKGAuWAiEAlD2nOHcxTJjT1oM3Mw6kdhk9rmwdguAlgTUXMEnJjIk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260316090523.ee31d8c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23536905},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"ee31d8c6f8ae3cb08a37810853a44e49df45ea5d","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260316090523.ee31d8c_1773651953423_0.5484210119769428","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260316091516.14bcd2a":{"name":"remoteclaw","version":"0.1.0-next.20260316091516.14bcd2a","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260316091516.14bcd2a","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"4434aecf570783ff28ae5b2f9fbf3b442101cf70","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260316091516.14bcd2a.tgz","fileCount":2156,"integrity":"sha512-FgBiM1kPvZ8YYOZWO9WZjxpMBNUtuVTiDjUxnJjjdk5vBUw85+hHo9+9QYLeTYwiIt23pgft7iLbBXq1qejdEw==","signatures":[{"sig":"MEQCIAJUHYZj0eSbmJt4k1mz5hSBC9XtOWcQvumIeeDpqzqVAiA+TYf8nN1x8hKjg60PdVFzx8vIjbSymy6iLHmDizn6yQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260316091516.14bcd2a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23536806},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"14bcd2a19ce98b028cee147744c3561f221b1f2a","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260316091516.14bcd2a_1773652546615_0.5103478437900908","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260316092458.51ad376":{"name":"remoteclaw","version":"0.1.0-next.20260316092458.51ad376","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260316092458.51ad376","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"a3902c35b324d2d1df0b3b1a80ef4fc369760d8c","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260316092458.51ad376.tgz","fileCount":2156,"integrity":"sha512-9zpweCogXgfZVhrNIlzIDx5nk2gFsuZBqFLH3Ly/5F2gPAcxiEDKF75GK1isLNDU3wmQWXH/XBIbdEMugvLOyA==","signatures":[{"sig":"MEYCIQCsO82UmV6g+nqj01IxciBoFMqC72Rkuqq+RGQ9xJg1TgIhAMhjt6EHZg7chKTvkC2O39XLeuiGvPVa6AswxJNm1J2R","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260316092458.51ad376","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23537379},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"51ad37608c3d541802fd19b2a32142b2b22a3ef2","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260316092458.51ad376_1773653125435_0.4529942227958381","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260316093426.c3e3340":{"name":"remoteclaw","version":"0.1.0-next.20260316093426.c3e3340","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260316093426.c3e3340","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"a4d6fec5ca25b4ac46045e1938a9cc9a328f8e5f","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260316093426.c3e3340.tgz","fileCount":2156,"integrity":"sha512-PIians6iuwXEmTSbGNEQ5a0kS2XLKqQzRsEArysiO/YFqc987/KrAphe6/3vWlcQJL4zrsPOUcr7UOeZSRglSA==","signatures":[{"sig":"MEYCIQDwGKFHh6b2Og8JNpvjrOHRjofXlP+1+wpv3oO0/ag03wIhAPS0157p/Y9sMqrBF+3E9EQ1ADKq43eZXf80XOEY3FRO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260316093426.c3e3340","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23537989},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"c3e3340844c3f7f67cc681711428d5b034e5a407","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260316093426.c3e3340_1773653696387_0.38022009454675754","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260316094948.e3db329":{"name":"remoteclaw","version":"0.1.0-next.20260316094948.e3db329","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260316094948.e3db329","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"efe2f9b2303f95b9a46c552826e62f748cbf2cda","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260316094948.e3db329.tgz","fileCount":2156,"integrity":"sha512-yyA+H3ildRIrCnbNAB1LtKYISJRKLeMBEUQxeGmKl62BbXxLHlkyD8ZYi1QR88jQYfwLHWfbw0h1qOXRziZ3uw==","signatures":[{"sig":"MEUCIBgzBT65ib6ZRaxIvz3JOoL93J84fw0wDe6pVGSzggijAiEA6dVc3xa/W/XYKn2oXO8ddlOYzOEcCfwRbi73009w4Gw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260316094948.e3db329","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23538423},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"e3db32909584ccb31b019df211ce844975208f36","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260316094948.e3db329_1773654619012_0.1408686967952386","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260316100104.f68a94c":{"name":"remoteclaw","version":"0.1.0-next.20260316100104.f68a94c","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260316100104.f68a94c","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"b7d98ee7c11e7394cd911c60817a302e875a832c","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260316100104.f68a94c.tgz","fileCount":2156,"integrity":"sha512-ZpIr3zVy4T4d7PyhXdKZwLbOfbD2akD/Wgg1XvPs//VpEoeA26SiRA8xDGBPbLxc+iRl68TP3+hi8Rq+iLsVcw==","signatures":[{"sig":"MEUCIQDLDujYgKhOrkKCMUa52nHD7rk0cgS7Rt2T7yf9P59YPwIgBfGPmcnM4SlIitytsRxAUvG+k4/mDplfcIkeoyYZuqo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260316100104.f68a94c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23538491},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"f68a94c4c52d3b686721c20fb8e6b5df8efa8907","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260316100104.f68a94c_1773655295793_0.13708697324137242","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260316101613.7f239e5":{"name":"remoteclaw","version":"0.1.0-next.20260316101613.7f239e5","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260316101613.7f239e5","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f62e062128c10ac8d374bf44d466f0aee8c27f9b","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260316101613.7f239e5.tgz","fileCount":2156,"integrity":"sha512-YzEB7n7JpdbbuyFmFc4U9B+wGoAlU5kiDTtrg2+Y1zFjGpG3gK9LQVgtZrbhhPJGRA9GSWM3b+uXauQsh0qn1w==","signatures":[{"sig":"MEUCIQDXmlpFbcVItWV0U8BOjwNbP7UJSdfnHR5AhvMYbOCBfwIgCunCLpu9lRjuNRv4kI9sHH/Ald/1ArSz3tkb4N75IT4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260316101613.7f239e5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23538491},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"7f239e593c9de16fcc05b27b20e02f7132778861","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260316101613.7f239e5_1773656203028_0.9850186281037752","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260316102614.3b328ae":{"name":"remoteclaw","version":"0.1.0-next.20260316102614.3b328ae","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260316102614.3b328ae","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"3c25f69cd1ed6a4219753bede9f54e07ad0f824c","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260316102614.3b328ae.tgz","fileCount":2156,"integrity":"sha512-Tbg4dt57Oa7iJ1xEjmCmkyS54IopWaDTkte1rLRp+LfMcgsl09MXaJID4Ujv/UM2jnD2socq1GkNEcc8Tq4kgQ==","signatures":[{"sig":"MEYCIQCgMZJahFImXVrtCVbE+2oPa7p9IMVi2hGLoTWsuJuLywIhAKGmTzGAD+MTZqu/aQnsWKW5bKqFSv71+L6j2Kkd1ywH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260316102614.3b328ae","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23539652},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"3b328ae67436af24d38f49565dd1f89b44036d42","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260316102614.3b328ae_1773656803473_0.5140585950170167","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260316103904.6f58955":{"name":"remoteclaw","version":"0.1.0-next.20260316103904.6f58955","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260316103904.6f58955","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"ce8b458d3159b676b4a77152c1c264e0bc325476","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260316103904.6f58955.tgz","fileCount":2156,"integrity":"sha512-e0RUOTEzB7ZQdFmmsKaJUabjyPeEHYG2oWDwyraM8CJi6qtvDMI5NIBqDqlFT8T9Rk59mkXu6g9EWJDJvY9ylQ==","signatures":[{"sig":"MEQCICiiKuQCihldwm08cmKEl6D26v0YOZNzCS9Ra7w77r4AAiAgOcveLSOaLF8giycDCt+IqbtdL2FxERTDhOJvGdFriA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260316103904.6f58955","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23539796},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"6f58955d68748aea558cdd65ee789a999f22a2db","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260316103904.6f58955_1773657572514_0.8877532943506758","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260316104859.8c99e59":{"name":"remoteclaw","version":"0.1.0-next.20260316104859.8c99e59","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260316104859.8c99e59","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"fddccdc39c5f3d16325479c9ba19564a175788a5","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260316104859.8c99e59.tgz","fileCount":2156,"integrity":"sha512-LLPUERc5LwEm3EsOt+BHZ26AdfYiM2b5EQfiSYgaSkalNZQsBo4p4AK5F9LTaQJjqbKzm/VONf+nqYTgutKpnA==","signatures":[{"sig":"MEUCIQDs1DRS1VW2YODdVerMxVwdgtAunRlMiY4xjr3xf3nrbAIgbAAOGJeNo5NdPjdqtOchxHe3R2bLvGdYeSxztA/VIpY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260316104859.8c99e59","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23544118},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"8c99e59232d2be39f53a34e1aac460e214a13ae1","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260316104859.8c99e59_1773658169416_0.4201989088153515","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260316105914.a871726":{"name":"remoteclaw","version":"0.1.0-next.20260316105914.a871726","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260316105914.a871726","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"5ef744f680a174367e8a06b10dbaed5561a2040c","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260316105914.a871726.tgz","fileCount":2156,"integrity":"sha512-Y3DPDvmiKoVNW5QUcqiL2glxh+Sqc7y8WtTavUCUJCsULLd+JD1g16VXixvzA0kBqQ0RVfWJjYbN/6YHGln2tA==","signatures":[{"sig":"MEYCIQCcqYCV5XYdIQzw0508MiugVlUD4xpqdy3NFW8Nyms/fgIhAMIiyuGPw2iRUQtuLRR3osRJ5/9Ifqi06iPIxol6pdV+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260316105914.a871726","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23541812},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"a871726b6e739e97fa886e3c4040cef981bc5b2a","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260316105914.a871726_1773658783048_0.11842589484063537","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260316114313.0904ecc":{"name":"remoteclaw","version":"0.1.0-next.20260316114313.0904ecc","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260316114313.0904ecc","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"fe5d0bda45699bf9109ab9ca6ea800229be54a67","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260316114313.0904ecc.tgz","fileCount":2156,"integrity":"sha512-ibKBSV3qLqPG/RuptxxL1ex+9oKGqFt1M8Z9yNuqcoVohEuU6cFXKay5dl7cwppRZVGKRPwzAo8xn+pfbyWDNA==","signatures":[{"sig":"MEYCIQCGd7LGQoI1iGQFno1gLYRLdl0PR9mW+1gPzoljSckjhAIhAO7htDFqKGgUweLTSVvOVc1HcX5fG3VoIhWF46Kbh926","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260316114313.0904ecc","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23556023},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"0904ecc32c9a1872ad1d76cc574f5b1ed11e14dc","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260316114313.0904ecc_1773661423622_0.20549797305245465","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260316121638.112b5ba":{"name":"remoteclaw","version":"0.1.0-next.20260316121638.112b5ba","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260316121638.112b5ba","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"09e5baf8370015e97ae9606cd935078468050004","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260316121638.112b5ba.tgz","fileCount":2156,"integrity":"sha512-X41RNEp8YrtzYmGlfqInuSZ5mBfmI2Au8fdRinrxtZ+5ezI/a+nIfgA7i/Mn/ZsJtD+Ojdx3uYog5W/Syc2H6Q==","signatures":[{"sig":"MEYCIQDIDNo7gLsKSygJm311d9bDyE3nOZ3rzxeKPRzpIqSJWgIhAJqKj7RQjqaTdsoTtrWcBMCt8tacqxAsRrgUVJeesEJI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260316121638.112b5ba","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23585887},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"112b5ba7dbd67cb1cb7009a2e13c660f28ee6453","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260316121638.112b5ba_1773663428413_0.6658188241786889","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260316124223.11cf04b":{"name":"remoteclaw","version":"0.1.0-next.20260316124223.11cf04b","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260316124223.11cf04b","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f4faee3052465960c41a8b991a73e2a30d3d0c63","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260316124223.11cf04b.tgz","fileCount":2156,"integrity":"sha512-hSmEQlvD5xREFBcNKyREMCjsxNc4y+oiN62dp235w0aAnq5hzvZ6bCxCvCAOD0eeKJ8ElHFZwYg8ol2zWED9UA==","signatures":[{"sig":"MEYCIQCKTtO46t7BM23aCYXwzqRaMV1pqnkAmkfQI7l0pZPS6AIhANrEZVlBA3hobR75UEUvmqj/M5Fqt0vid0qzeD4tycMV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260316124223.11cf04b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23583377},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"11cf04b23d8c1a18bc3adae798a2f75424eeb723","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260316124223.11cf04b_1773664974398_0.6286199334789697","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260316125954.1459d48":{"name":"remoteclaw","version":"0.1.0-next.20260316125954.1459d48","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260316125954.1459d48","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"213d93b11e4313baf91cc7eaef7e9fec9cda178e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260316125954.1459d48.tgz","fileCount":2158,"integrity":"sha512-efpr/5aRgCWsBR5SWDEY/SupFC5Cyw38L+zFSAX0ehkg+6noDxOLJ2ynOJ8PYNZ8ru33wsBJkOFxluyunQUTZA==","signatures":[{"sig":"MEUCIBRHLjzrdqywOhQufZCEszC6fmWYAq15sRGKipLm2qIPAiEAhQgvDSAu2Ogt2psvOIZVbCaASjQgofuw9W6WVA9v9o4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260316125954.1459d48","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23669792},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"1459d4864131cc869395e6dc37f4935f87f4537d","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260316125954.1459d48_1773666026011_0.925802088967788","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260316135117.06cc0ed":{"name":"remoteclaw","version":"0.1.0-next.20260316135117.06cc0ed","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260316135117.06cc0ed","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"2be365c8f2d1f6f3870d61392357fa75e0368682","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260316135117.06cc0ed.tgz","fileCount":2160,"integrity":"sha512-EGyM6CUmQDC99XQolXrCFOK+LQ/YnrWB+Q8omb90DMOMem42sm6o2zIfXlomcwsHR7dv3nIJdBIW8ZC+Bp94sA==","signatures":[{"sig":"MEQCIAHjkSDKRxiJaKoUykBRhibikPsndFzC809lxEyd1SU6AiAK9rK/BJOC0gxcU7EkmebVnu/jBK4RshDfDCtdZC6mSA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260316135117.06cc0ed","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23676482},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"06cc0ed3f0a7407171ab630d0b79f1964c2f6a27","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260316135117.06cc0ed_1773669106254_0.3516563997678668","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260316141146.05eed6f":{"name":"remoteclaw","version":"0.1.0-next.20260316141146.05eed6f","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260316141146.05eed6f","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"226d221331191ec3e798358cd8ffdef26f3c114c","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260316141146.05eed6f.tgz","fileCount":2160,"integrity":"sha512-GE1RAayCop02ciBX+z+a5RxQpKAW9c++DrQE7cIrtHQjTrQmchw65ECzfTADywgzY/teII+T54mbpz3GOEE5YQ==","signatures":[{"sig":"MEUCIBAFZz+emCfLhX6naLr9Kqj+Aizvy+BA31LUcHvpLOc0AiEAjr58xb1zK/HaeNOSdvLWY7fLDqYJKrkeZUTs6bx6BVg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260316141146.05eed6f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23685403},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"05eed6fa8008b7769aa051f71cbf73e35e92ce78","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260316141146.05eed6f_1773670336807_0.027773029498677104","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260316143256.9b12104":{"name":"remoteclaw","version":"0.1.0-next.20260316143256.9b12104","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260316143256.9b12104","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"c8122e124785708903258e13377891beb4f446c1","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260316143256.9b12104.tgz","fileCount":2160,"integrity":"sha512-P0pJSqfJnjXGzyH/qw0anVNH2dBzG0HRqoZ4VjwSI+t+jmrFD0xKSgntFjCyEDsLokxhXWgJjcl0K500LuGPsA==","signatures":[{"sig":"MEYCIQCvcgKGuuQlLCUhxVTI3eTUjfHgADCdpaWVRBPGBSL9qgIhANJ1q4hyGLOA6shujn8P4D4w+9hL7GA4Y1A90b2ndPC3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260316143256.9b12104","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23682871},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"9b1210422f6d4063935cd633c4ca6cab95e3e6e5","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260316143256.9b12104_1773671603875_0.5130681210506152","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260316150617.ad5ff74":{"name":"remoteclaw","version":"0.1.0-next.20260316150617.ad5ff74","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260316150617.ad5ff74","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"297de96056c324944d1a792b4254c399841ad98a","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260316150617.ad5ff74.tgz","fileCount":2160,"integrity":"sha512-i95nJrXf8SnejpVW5qtuf7fDWbSfEjBeDrABSRAwlz+Xagr16cBmJQ59ueRmZQbzOru0CZ5rVWCL0fTUSprP6A==","signatures":[{"sig":"MEYCIQChbjhHGiFBYjSM4FrXx5+/9q8QqJ9mF4DYfFX3QR+TUwIhAKTLr6uaUutmUXFwDpYqAQeRztOesRyV6xMXuW2yqqcS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260316150617.ad5ff74","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23685431},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"ad5ff74543aba6f39c471edf82e103cf8d4a6e53","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260316150617.ad5ff74_1773673606327_0.9184750173907656","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260316155250.b76d8d9":{"name":"remoteclaw","version":"0.1.0-next.20260316155250.b76d8d9","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260316155250.b76d8d9","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"9439e75aaa3903152f14b526a67a4fed08662b1d","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260316155250.b76d8d9.tgz","fileCount":2160,"integrity":"sha512-3iv/W3Rt109KkXmy2mXdWaP9jV3+L/tSvEZn0C3Rf7BnxyYHet98iFi6gbxDqDOLo/ThIl1Ihncl1fwdvIFvDQ==","signatures":[{"sig":"MEUCIDllFQk8mxQfD4zfMgkwyfJZdMh0mpNmzIQJfrKzz3laAiEAr0rYJV3CjK9CvD3WbHMAV6sBCuX4lo0jXE5CealYvag=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260316155250.b76d8d9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23704488},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"b76d8d92f856e0716abd1e4208313c93b6bab53b","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260316155250.b76d8d9_1773676400596_0.7114534357428779","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260316164856.2953e81":{"name":"remoteclaw","version":"0.1.0-next.20260316164856.2953e81","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260316164856.2953e81","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"27d2d8c959e064f8f27c2935b25102c92c478a9b","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260316164856.2953e81.tgz","fileCount":2160,"integrity":"sha512-dSr5+lLnO2bTs+Ullq8TdOg6YUoKLjZfMRp4OfHZH/iNFYAMAfXMB4whwmmonEFz+TqG/mCAAIFgwjHhz/6p8w==","signatures":[{"sig":"MEYCIQC0yceIf/NuFI7BXj708bbkkcbPPjKZvpdQZRYVlOgFbAIhAOKFPpVFfDcmWC9Ev+R7GjphMr3SMJ00K+RhshJoKAAP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260316164856.2953e81","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23714889},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"2953e816d7d5ee73e9769cbabd92cf7e4df3496b","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260316164856.2953e81_1773679766261_0.008014521666709129","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260316171723.79fc898":{"name":"remoteclaw","version":"0.1.0-next.20260316171723.79fc898","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260316171723.79fc898","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"439aaa68f7910d55424833c19a367ce9764d2fe4","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260316171723.79fc898.tgz","fileCount":2161,"integrity":"sha512-GWroc/e2Z7w9tcbY8SpbDBj4dm1AyZsqK49PYrZTXOhEX0Zs7odmzHvp04J29FHZlGA6AlVzr5b5UedN4qp/Tw==","signatures":[{"sig":"MEQCIEpLHzOwewjkCT+H5l4h1GpnAwJOTnNmpejQnd88U6ykAiA1Q1JnmguGbfBAJNZ9+7MEqvLY8aJGto6SiuQmTyTa9A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260316171723.79fc898","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23722322},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"79fc89841e9a795278c4e07a76f45a924a1e123e","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260316171723.79fc898_1773681474117_0.4936651342423455","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260316172730.80520f5":{"name":"remoteclaw","version":"0.1.0-next.20260316172730.80520f5","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260316172730.80520f5","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d18eac93c637c892601e25be662831cc743bbece","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260316172730.80520f5.tgz","fileCount":2161,"integrity":"sha512-v9lN+N9JzyRF7SEkwhL6XWXpn2QxtAiBblUeDKqKr2tGBTaaRylAY0DkJ5wdkzkJmvUPQoxmovfi4PLI6QdQOw==","signatures":[{"sig":"MEUCIQD9hO5ZplD2zCywm7IlnNvly1HJKbr298MSCYSu3md9cAIgCgh9g24xX7b+DjafbLEvbwBjqCDVUZjQOcBOhcSFh74=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260316172730.80520f5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23722551},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"80520f56b370b0837c812a75a418fdc9452ced71","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260316172730.80520f5_1773682079943_0.6541574572497713","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260316175500.c989c9a":{"name":"remoteclaw","version":"0.1.0-next.20260316175500.c989c9a","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260316175500.c989c9a","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"6ac541b6f30944f503e41d141b64446775783098","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260316175500.c989c9a.tgz","fileCount":2174,"integrity":"sha512-2TLV2ygaEvhC6DoIFkdKBNuCZ7mYquWTxMAakMR26K/OfRaj6PjFxvMBH4KBvAGlLsMgS11M9GPtjkZimyGLAQ==","signatures":[{"sig":"MEUCIQDfEOZTjeW+fePRwp+GYU5zIdblzSP2sO0IZ07E/91c4wIgenIH8uUUilnblfRUs7T4wfXRpQHGw33E8Rx9WVzq1Vs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260316175500.c989c9a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23766118},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"c989c9ad46c7af5907e96620eb74ec47239cd7dd","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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.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.20260224.1"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260316175500.c989c9a_1773683729203_0.7203105658026563","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260317043839.428e910":{"name":"remoteclaw","version":"0.1.0-next.20260317043839.428e910","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260317043839.428e910","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"725a3143eac234ab0f22c322a4b09207c455e37c","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260317043839.428e910.tgz","fileCount":2187,"integrity":"sha512-AgDtdvZmKG04QYz+fjaWYhRmA6r9D+wg4QydpqCR3r+C1k978UveNezl8tL0g8TIz5alrVF+dYya4CDp2gJxjg==","signatures":[{"sig":"MEQCIARLY0lvz2lYp5qJce88D8Duy3JRH8bWeWHvOO9AGIr6AiB58Fke+Q5mVvoeC3wqrxvy3EFvgl92moT/LdF4DppRLQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260317043839.428e910","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24027738},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"428e910f33e5c93abf661aa19cce23003cca257b","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260317043839.428e910_1773722349227_0.5382223674270847","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260317071502.e2a01d7":{"name":"remoteclaw","version":"0.1.0-next.20260317071502.e2a01d7","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260317071502.e2a01d7","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e6b6b847b2a8f5097d7258de97d08f311b131706","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260317071502.e2a01d7.tgz","fileCount":2187,"integrity":"sha512-1USQvfIl8J9PhFA16aNeyLVawv6seBpdFR2lktNkIH5X3x6GzSluJNZLyc93LlNVz1RyTEXWLwgTR8Z5U6e8ww==","signatures":[{"sig":"MEQCIH/a9R+vgPjv32Sq6yPpf0us67ikCZPKZZlwad+iVo2DAiB8gW6fstpA0nFddv8aFV3f+7Yv9NVXi7CUA9KjjPUPbw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260317071502.e2a01d7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24030632},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"e2a01d74d02790acbb54349788e29472ab76ce29","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260317071502.e2a01d7_1773731732667_0.6393414438440062","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260317073830.842c87f":{"name":"remoteclaw","version":"0.1.0-next.20260317073830.842c87f","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260317073830.842c87f","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e1cf081fc05535af92736512af64197e26844cce","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260317073830.842c87f.tgz","fileCount":2189,"integrity":"sha512-wzdVFcNEk/hWvrpiNb4Nkkgue7QnsrGEei/pHbvDX8Bfv6ijUlv7A2hwAdhwpPGMBsbrbj7fwRWHlZ/J3rQMwg==","signatures":[{"sig":"MEUCIA3b4G5ZRakiwF76fbtyJIVeHVQtyjAEuIqwoBQxdB0iAiEAnHz06CHr9iKoJ3Kr30+tHKF752lYt3FO1NlMPx3Vd3c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260317073830.842c87f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24036283},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"842c87f242a0017de53ab5928f6d0db13a5942f0","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260317073830.842c87f_1773733140337_0.7147547485669183","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260317075735.1814649":{"name":"remoteclaw","version":"0.1.0-next.20260317075735.1814649","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260317075735.1814649","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"5dc21250d6c7a8e6c0411db1506be0e3b2a4405e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260317075735.1814649.tgz","fileCount":2190,"integrity":"sha512-aJYKLk7em6p9L1zoW8esfzGxkM82NSPPpu7QgzQnldz7YJpEpGlwYVhg5zfZ4mkdRUlvQwCfnWP8cf2XoHZEfw==","signatures":[{"sig":"MEQCIFKgIc6AyL7GfGJbHaxC8DDlrya+4cW2IoG0tTMOy2jiAiAKV5Ao9hPFnTOKxv16lApnM+iH+xkzNmlCK8VZiAi1pA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260317075735.1814649","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24057298},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"1814649e4930125a30d25c3968c927804faef5d2","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260317075735.1814649_1773734284846_0.5478293261365108","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260317093222.856ffd3":{"name":"remoteclaw","version":"0.1.0-next.20260317093222.856ffd3","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260317093222.856ffd3","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"ba2cf7a4919b94a147fbac07336bfa124e914b5b","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260317093222.856ffd3.tgz","fileCount":2193,"integrity":"sha512-fyQl5T+3a/v23D7x2YJCDchDF3/az2nF+7cId385+BMVTxnYN2g5llkhzM6cDDQUXhgB1xgY3cgwPAf3LIoEGg==","signatures":[{"sig":"MEYCIQCMDmjFTqadIU2sr5Cu8EWRRy5B8CxYSeepb+d2wmMMrgIhAJFzHK8O62ILxLjVTQSZA8VgJfmLuX45chd9OD0yhvwo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260317093222.856ffd3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24069507},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"856ffd3dae697daa1817b58e9aeae4ea4b9f5b0d","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260317093222.856ffd3_1773739973764_0.7123643909097068","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260317100131.5a0cccc":{"name":"remoteclaw","version":"0.1.0-next.20260317100131.5a0cccc","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260317100131.5a0cccc","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"c9a296f0f84a3dbe68f1a5c0674f693bb4e5823f","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260317100131.5a0cccc.tgz","fileCount":2194,"integrity":"sha512-qIbDbRMYeTjmudptq/xZ9//Vm8nmu27gfSDYRwBF6I9Jxaa+CX9d0VJKHoUrYIlQIuhdbDCI4bdAUtm3IjUxzg==","signatures":[{"sig":"MEYCIQDXXtb48rKi8V/hB9uQ7yAHSRQsKLR5kglYvD5FnlWKuwIhALhk7Yk3fcPQS3txda+D+4fNmHZ95FBxWubyEZfBf4xC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260317100131.5a0cccc","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24138267},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"5a0cccc41a7427e390f19f11584cd6e55b7427a1","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260317100131.5a0cccc_1773741720715_0.6665774084488809","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260317105103.c0536c9":{"name":"remoteclaw","version":"0.1.0-next.20260317105103.c0536c9","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260317105103.c0536c9","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"252841eb8c097d0f1c0ab1fb98abee0d6db60a02","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260317105103.c0536c9.tgz","fileCount":2194,"integrity":"sha512-/uJ+BxWL8LxQ1H1cLrb27tKfDDlx1wjlrx9RxBkVBD/sR6rh9fLFXBEPYh07RV4LC07N69oxqDgLkU9Frgb+5g==","signatures":[{"sig":"MEYCIQDybBbgl7toLLxw692E522fx2Mxo3lZO18Yrzup096hPgIhALO+MmPsx7vF6R2hkTouXNHpaxpXN8ONM1OCPaWo33lZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260317105103.c0536c9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24143144},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"c0536c946897c848485f276d454d7346831c9fa7","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260317105103.c0536c9_1773744693487_0.7803760778346933","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260317111652.4340195":{"name":"remoteclaw","version":"0.1.0-next.20260317111652.4340195","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260317111652.4340195","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"7bc3437daaa6053e8d6bdc485ad545e473be22a7","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260317111652.4340195.tgz","fileCount":2194,"integrity":"sha512-t+noVxg4iMQfvk7DE4f9lJTx9nDIA9WZNHtvKcS/uDS70lAsY2DdwqlWjOBSQdWKHdpuxEyb5zuTLmociGg/fA==","signatures":[{"sig":"MEUCIHa9RRPkQksznuqLrlucHWrW31K4K2mIByB8NEbz2liUAiEA7T3IO2RpEzdJkaOsdV4zWhK3XkXQ3PsS/c+I/wk7T9o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260317111652.4340195","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24032737},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"4340195197195b7ea67a1d398934eb9840789e42","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260317111652.4340195_1773746242716_0.9691626095049355","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260317112129.29c742b":{"name":"remoteclaw","version":"0.1.0-next.20260317112129.29c742b","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260317112129.29c742b","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"8bc83c7a6045648840a17522e61212768dd515af","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260317112129.29c742b.tgz","fileCount":2194,"integrity":"sha512-2AdQJBt6mp1tr07ZPEMfP+iwCQsfyaUS5aGlN534PabfxTGJEWTmyn6W16oRJbAjHFn8R8qcQCNfIpAmh4JLlg==","signatures":[{"sig":"MEUCIQDTjeJwY/972/rCXgh9/bHhzrUKtG0VriJAwSS30OvZrQIgRrnhIUNGfr8IYpyUkE5VkPrWfWe+kMHOiBMvL8j7cOw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260317112129.29c742b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24035267},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"29c742bbe812f920f3fe5a9ae48906af0d769a5b","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260317112129.29c742b_1773746519441_0.0357223753991287","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260317113103.2e44664":{"name":"remoteclaw","version":"0.1.0-next.20260317113103.2e44664","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260317113103.2e44664","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"4a6a246e119b12b7438185575859a39ffc1b6b7a","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260317113103.2e44664.tgz","fileCount":2194,"integrity":"sha512-qdgyJCioBQpjmgqD+EL5JRISasc8uefdmnsbqRKGroqOMWnubTGK+WcGUiLdgNmNp96aVYAlmxua1o2P8NKxlA==","signatures":[{"sig":"MEUCIArlCENdoB+cAL6L8ZIiOzEh6oqzC2mN77A8nAnuaQclAiEAo6PuR9Tn79w8+0epagKP1Ekp1VGXslsQ270yjM5Q4m0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260317113103.2e44664","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24032737},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"2e4466417e6db186f8860a0e7b756c3fd230b359","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260317113103.2e44664_1773747093340_0.25270461584489956","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260317121209.df02af6":{"name":"remoteclaw","version":"0.1.0-next.20260317121209.df02af6","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260317121209.df02af6","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"daca8a8a4912de97469fb67c3b35d100aaa58f03","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260317121209.df02af6.tgz","fileCount":2194,"integrity":"sha512-1ogsfg2eytYp/C9zTbdH9bfAj2Ag+adsLEZxiESs7F4iZbLM3lVS4ZKBLQzNA2st8TnbwP/Ra+jgMmCjcQjk7g==","signatures":[{"sig":"MEYCIQCU3eGhukmjxG543aF6XOuWF9EMPHgh5mIiar3bxOAuDwIhAKAT724VO+rmizKd2/haWsahBCGymJUQUhdlsydxKaDa","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260317121209.df02af6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24035267},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"df02af6d664b68124b0cd6b00ef1d3b47b9cc4d7","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260317121209.df02af6_1773749560561_0.009261769192047575","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260317140751.b78a937":{"name":"remoteclaw","version":"0.1.0-next.20260317140751.b78a937","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260317140751.b78a937","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"bfa0a3e786a12cf4fac81d378e62cf189c914a5f","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260317140751.b78a937.tgz","fileCount":2194,"integrity":"sha512-hUaHX2GcdG6UlIWiHPSzZ5pvii/cALYCPDH9Y+fCnABv0mvoYjt6iqIlkVofuwq0pfL76uN9SffX6QYbDaRvjQ==","signatures":[{"sig":"MEYCIQCJwqtAgt6UKpJo/4ZExWdiiLoHC52enYal2IWUVJc+lAIhAOGzlDdXG4I7TL58ZorW9cKHjdxHJVlwfw0bxbMj/JxL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260317140751.b78a937","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24045427},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"b78a937d26c4689e41e4758c38c20b881291fa86","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260317140751.b78a937_1773756500602_0.5217636810662512","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260317141255.c811a1d":{"name":"remoteclaw","version":"0.1.0-next.20260317141255.c811a1d","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260317141255.c811a1d","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"fd0406a5b90dfd5d3d6ec8fa6322036ed97a8b1c","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260317141255.c811a1d.tgz","fileCount":2194,"integrity":"sha512-2fDdffdp14NDvTpz8Y5e1ZaUdRGbUomCS0Fg/ICX2J1tvE+oUl3M0nnoLFW4DhUoKvMPIslKPM5XLH/XFgd+ZQ==","signatures":[{"sig":"MEUCIACXemSfdSa1j7hwLi7NKK7esslwBrg07w0z9eQzTie8AiEA33EO0YscrH0AQA3SDqF65xWpchez+R7KUK2a6HZsJsw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260317141255.c811a1d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24052768},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"c811a1d588f9a236457a5205b13846cf365b225b","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260317141255.c811a1d_1773756806643_0.09455869075623857","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260317141825.528a24b":{"name":"remoteclaw","version":"0.1.0-next.20260317141825.528a24b","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260317141825.528a24b","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"ae0c54b9664edcab7b188036a5d843193b4e5bfc","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260317141825.528a24b.tgz","fileCount":2194,"integrity":"sha512-xxx2mIQnTuNFPzZxJ2O7ertcE/wp3fQX0iCNr275PFo/5gfVGGmwk6ca9ysk4BXE4FOO4BAPzXzZHf9WfDdjNw==","signatures":[{"sig":"MEUCIG4u+FvOVGNgljKnoFPVTHnpLqGwlmEbUepw+IDRucZpAiEArxMVqx+7ugEdjWqzGh17vPIO1BrsG30H7Ij5GBuz1AY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260317141825.528a24b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24053633},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"528a24b1e32163246118bd9800eb6f81455860fa","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260317141825.528a24b_1773757137773_0.8964059168499094","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260317155723.0df284c":{"name":"remoteclaw","version":"0.1.0-next.20260317155723.0df284c","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260317155723.0df284c","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"8aa6c97cae4ac22763962628e387c61b67a37179","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260317155723.0df284c.tgz","fileCount":2193,"integrity":"sha512-co9sNIkR+DojDyRYlN1YkT7VwHtpwOSs6bNC54OyusPrkie7arv5r99HtabV1CDC3PUHutnqz4e9o6LiqgqQeA==","signatures":[{"sig":"MEUCIBPH0eEpFTvzOivxR/xIE/RfQyqATDv9z99wAPLu2HzSAiEA11O787+btD21dkMoKH4fezW9JosINzwpn1gIQG3FAUs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260317155723.0df284c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24055512},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"0df284ca85a73cec04544aeb9adae5dad105d9a6","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260317155723.0df284c_1773763077420_0.6362435258103447","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260317161824.2e4bade":{"name":"remoteclaw","version":"0.1.0-next.20260317161824.2e4bade","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260317161824.2e4bade","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"bebcba023483c06c8520c8fe7a3bb9d194973d5e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260317161824.2e4bade.tgz","fileCount":2193,"integrity":"sha512-SwRi1kD9avp2aUDIY5eq7wuIVicKPDH4W2DKUdBktOaouj3g8SYZLoLmpxWOD3BWzvxUL2VZj8XpT+L00iyJfw==","signatures":[{"sig":"MEYCIQDrKVuRMddGZIj97FtGbs5DcfNuh7MGqRUs7oNt4mwArQIhAJABC9ax7S16qj6WmFdgIufz4UwblMqi74U3MTzh2ykR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260317161824.2e4bade","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24060627},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"2e4bade466fa04d8cc0c6d2382b4ddfec7a3d0b2","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 check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:no-raw-channel-fetch && 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260317161824.2e4bade_1773764334060_0.6619481461761532","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260317165501.270faf5":{"name":"remoteclaw","version":"0.1.0-next.20260317165501.270faf5","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260317165501.270faf5","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d94fa1c6e860c66c12cd40a35515fab3292102c0","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260317165501.270faf5.tgz","fileCount":2193,"integrity":"sha512-semh3nRDqG37GAL3gwML3BQ1mCCGSr1PVkvkpqe4wWbF4QV66vaSeJV5dB86oxPVGI/KOIC2oBM1ryFR/6vh3g==","signatures":[{"sig":"MEUCIQDAUNBcEo+LJH4e2n2smiJU+IevOwzA+mB6NQ4Qh4AMbgIgA0lLvyIMCZC6KCfrAfBL3KmqEcZyLbWE0LoXpDwNMNM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260317165501.270faf5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24094791},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"270faf5d6176ba5d98af732e57cb14520df381ac","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260317165501.270faf5_1773766531765_0.33976078043480196","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260317173858.ceb224b":{"name":"remoteclaw","version":"0.1.0-next.20260317173858.ceb224b","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260317173858.ceb224b","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"085743fe2353bb91310893c8abb29ceae63ae7b5","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260317173858.ceb224b.tgz","fileCount":2193,"integrity":"sha512-qj2YziT/iif2iV/iCnF+W8YAuPf+jO8+OsY4Hy4TDNwUzodtTKAzMN2JdNuRpZSocWoUeZQFJFRdOYfpWl+aQw==","signatures":[{"sig":"MEUCIQC0FWk225Up7kp+KvkVnl0eNU3OBXeEbbI509UYdBya0QIgPKJ8npq1VKpuPGrMSHnK+EL8iG5p0CrsamtZuOTeLQ4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260317173858.ceb224b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24101641},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"ceb224b65036cc221a50369f4c0c1d2a99162e91","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260317173858.ceb224b_1773769168685_0.3477994085166234","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260317184111.ee19292":{"name":"remoteclaw","version":"0.1.0-next.20260317184111.ee19292","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260317184111.ee19292","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"cfba15240a2e04db5cd025450c3272592e9a0324","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260317184111.ee19292.tgz","fileCount":2193,"integrity":"sha512-VmTWp/6ROjpvehMy2AenHWq6oMgN4pry1cTHDi39cNAvc5AJo5fyUtVw/NxuzANywEuP4uf9b0VJN+uzKAg5Ww==","signatures":[{"sig":"MEQCIB6Q+KBTx9hMkL+meiehyWWett08lh8jH7V8Ymbz/g0DAiAN8fPqw+AJobOLH6UoclKFgHm+1dg00qJgmDPX/q513Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260317184111.ee19292","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24129619},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"ee19292ab901dfccd3ac52629326c61f334627aa","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260317184111.ee19292_1773772902229_0.4093475971139289","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260317190253.05fd828":{"name":"remoteclaw","version":"0.1.0-next.20260317190253.05fd828","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260317190253.05fd828","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"8112674b3ce7c9c0935dfd4b5a4399b0c30b31cc","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260317190253.05fd828.tgz","fileCount":2197,"integrity":"sha512-Wurlz6QOo4KGjkx9g4O4ZlzMnbs7+2AxlJG0yl5SSGXA0cyZohquPrZgdpOCwtGX9Q5bDTYHPEDSnPHybuzMcg==","signatures":[{"sig":"MEUCIQDTY5Km6v+o+YKJLIsIsnDWk0mf4atgv7E1TyI34tmuZwIgOm6IdKE5MfAjBUK4I9HuFu10jIXdxP/y4t1eD8HUJCY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260317190253.05fd828","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24147943},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"05fd828ba4335deb17ec7acd245a5e9f19d41f3f","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260317190253.05fd828_1773774204459_0.20292912513143535","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260317191509.f6a12b2":{"name":"remoteclaw","version":"0.1.0-next.20260317191509.f6a12b2","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260317191509.f6a12b2","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"b1a12fcd4f6c641b0d5a403b7924115dee77ab00","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260317191509.f6a12b2.tgz","fileCount":2197,"integrity":"sha512-i1XF+eV6oIde1skymjObgbvj5fyLso6JwvhHsC4rayWOsV/Piztrg9dmivZWfWnXHQvpNf0VzStVDmnjaMO7NQ==","signatures":[{"sig":"MEQCIGKRDZdMwJNk3RtbKcbxr/Zy659EIxJF0blaVXzQ34qxAiAXdGPQF7gsw46jwKJ5m2H2QReFg2Pp3B7OfM2YoeCGeg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260317191509.f6a12b2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24145346},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"f6a12b24b33ae4417ad03698b5b8a7636d701eab","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260317191509.f6a12b2_1773774939178_0.4866421869382527","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260317192449.f0d99ea":{"name":"remoteclaw","version":"0.1.0-next.20260317192449.f0d99ea","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260317192449.f0d99ea","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"0da49496e4da884a231df1cdf7c97a424317d4ba","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260317192449.f0d99ea.tgz","fileCount":2197,"integrity":"sha512-Wy7FbmG/YS5ltkiK3IC9UPRcyRl1HPzhhEDy20l1GP0pI3ANYyAxVzXBleheuLtA06vTiXGuevHjQvwXuKz3ww==","signatures":[{"sig":"MEUCIQD4TCLaCliJ12kQqQICtQEMUjVscDjzcKIXHx+OtnLu4wIgaj+holLo9jwwCicY8rDdDx9RyQNb1s7ebktrQ1PY/Sw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260317192449.f0d99ea","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24155369},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"f0d99eaf37154efaf8f101abb1aa062c19ce7c1e","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260317192449.f0d99ea_1773775520159_0.028001333786605853","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260317193534.3b5ea96":{"name":"remoteclaw","version":"0.1.0-next.20260317193534.3b5ea96","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260317193534.3b5ea96","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"18f103b69e217491c925b063ef08b865f0204f03","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260317193534.3b5ea96.tgz","fileCount":2197,"integrity":"sha512-h7/cg0Nf0IKvCCyBXelR5FWQUER3x8G9uIKDH9rgKEdHm1NcOBexMXYxBl6n+9S6uNym4zxPpIq3+jEVVzUbPQ==","signatures":[{"sig":"MEYCIQCt75lbmI7bccNuyovq7ms1QT4oWPuHjUCuqM3snu8NdgIhAJ+H8O7+lQnaz82/KAeJLgxc15QWRncd4fQ/SlKvezVv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260317193534.3b5ea96","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24155034},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"3b5ea96b121ba73bcf391386554feaf58d3e87a5","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260317193534.3b5ea96_1773776164593_0.682474214560503","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260318055008.2183859":{"name":"remoteclaw","version":"0.1.0-next.20260318055008.2183859","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260318055008.2183859","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"45e31d429981d8dd09fc244f7dc0e4b90fb6034b","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260318055008.2183859.tgz","fileCount":2197,"integrity":"sha512-1zUQzfxaPS7nZjuRFMI2kwbq97qUulfinz3SDmbHIpXRMeUmCA/TIso9Nk70u5payPTRYAJ2YWlg56K4khnCaA==","signatures":[{"sig":"MEUCIQDV1J/YnZy6kG38nFUYNWYWpohpbZs9TZxx1X0buGL/zgIgQUHLG1BL7ntdy6Bsk08UYMikzoK0+hF7NiGvMvunM/M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260318055008.2183859","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24155376},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"21838591c6447888c0d7d88e3aac853e33e8ddb4","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260318055008.2183859_1773813036995_0.8962325481621971","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260318090717.cef738d":{"name":"remoteclaw","version":"0.1.0-next.20260318090717.cef738d","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260318090717.cef738d","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"3841cca36ccd37fb9cefe85121663a9396c96fbe","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260318090717.cef738d.tgz","fileCount":2201,"integrity":"sha512-qPCmoS4vjbn2c73qDKj778el8K7z2sDt59r2ce5U1rl2zr77CDg83Sm0FRJTR4a2ZRu7OzaiFAGIzjxlvj1Olw==","signatures":[{"sig":"MEUCIDaBJsTcyQwOhOmkqvlYdTiSJ17GwtCVmDa5xdYjO2CiAiEA+CrJhr5bBFGl1v1MmNPI0wKeyd6D2zMy8aaE0BZqpvc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260318090717.cef738d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24238433},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"cef738df410a09ec10e5bf8013429063c9e92dab","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260318090717.cef738d_1773824869844_0.6222401322770732","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260318104124.97153f5":{"name":"remoteclaw","version":"0.1.0-next.20260318104124.97153f5","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260318104124.97153f5","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"7b37d7e5df066e6137de056a2a7f6dd0a4790665","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260318104124.97153f5.tgz","fileCount":2202,"integrity":"sha512-i8U/CLY7S6bSpppaLpvqCUauc7jIwrOPif7MWXZb4xhKrBQTIL05OhCOE1tHKE0ca7AgNrXUbwhDCg4yXsp/Tg==","signatures":[{"sig":"MEQCIFcQwSq79SOw8m1qYeAE6GZaqBp7lNHbbpIkXv3Y4H3LAiBuQVqjCHgPIS0mWbcd0MjRdlB9bgDeMnfouN5QqfC+YA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260318104124.97153f5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24246745},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"97153f553268b4eba567c6b9010e8b453f451ce4","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260318104124.97153f5_1773830512778_0.8918847874025657","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260318105301.54a3bca":{"name":"remoteclaw","version":"0.1.0-next.20260318105301.54a3bca","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260318105301.54a3bca","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"ab105e82b2a1a2c6a06b21c9fc01ddcebe8399f8","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260318105301.54a3bca.tgz","fileCount":2202,"integrity":"sha512-hDPFSWAMJkotBdkQdhqTNG5M1SoFpy7ZIiphUf+6Wp8ghyOy1ISdPfRsMbQOl173QmVPRJ9C/ejKzNsl/ON8Mw==","signatures":[{"sig":"MEUCIQCjXIBTanF4twjEEWN2n5Ulu5ctxamHZ1qoUV9UwBk2cwIgLfuMZIt6lvRngDwlDgjVLYP1Mfvzo5KkdLetAthcMBo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260318105301.54a3bca","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24255012},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"54a3bca0fcec1209cc6ae2a8903f336934b615f4","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260318105301.54a3bca_1773831211253_0.021713200348396855","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260318110652.36d9680":{"name":"remoteclaw","version":"0.1.0-next.20260318110652.36d9680","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260318110652.36d9680","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"9547ff26115a098f563cc8954a51b49945b656ae","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260318110652.36d9680.tgz","fileCount":2204,"integrity":"sha512-bSMUhkrhC4MGo0SfAOY5iAjDXviBTlne64saoRE5XhLHObeJ9HgL4gGBahPsv46Zrc5/rc35xHQsxU2Td4e41g==","signatures":[{"sig":"MEQCIBAHJlxzmHCULWdyotgsodbwLWKPvunTG34nw/7gUdnvAiAqYwFzQh1caT0K3pdkYcMzOKK0KE1lGMlYhaEHqmNHfQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260318110652.36d9680","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24269636},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"36d96808bd335064a6936620e6bdee33a15641f4","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260318110652.36d9680_1773832042948_0.3028020608088058","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260318112422.6d0240f":{"name":"remoteclaw","version":"0.1.0-next.20260318112422.6d0240f","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260318112422.6d0240f","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"23ffb6d5f69ef8f3797fd4fc927c18827ace25cb","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260318112422.6d0240f.tgz","fileCount":2205,"integrity":"sha512-LOy0tyemHlZKvN1m3pkHXY40kBsaC/fvnpJ8e0jo14jVA7rqvpS9Z/4nB5/ATbd/WPKKkF6/qDCcK2NK10Nn+A==","signatures":[{"sig":"MEQCIBGVJcBpTI+ORcajzMtK5BZDhlCpSKlbu2baib13Qb3cAiA55oQun6cZkkEDJbxPKc6chQPL8WWpF909/jN7WXS5Eg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260318112422.6d0240f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24283193},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"6d0240f1cae6e85e46b23acd638d3d2fb813f32c","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260318112422.6d0240f_1773833092046_0.2398791001503302","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260318195259.6f88dc1":{"name":"remoteclaw","version":"0.1.0-next.20260318195259.6f88dc1","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260318195259.6f88dc1","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"4ae278a9bdc7a7206d59411a94bb3dfcd5e66551","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260318195259.6f88dc1.tgz","fileCount":2224,"integrity":"sha512-ks8LcnmeALeO/rgeV3fgVPyfHX5gZzqYb5LuICgqu27nHMz6cLahT2VYh7Ej7ZhSythKrfC0YUGekqOK1VJG9w==","signatures":[{"sig":"MEUCIQC30a0MV/4fQtrkOcBqM2taEL9Fy0zYtpQFlEnVTVpB6AIgH19vOaEeLhVcQqmUy+rQwoUmh0Yq9ecX3bs7JNVOK7w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260318195259.6f88dc1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24508784},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"6f88dc1c131465baed3e96c54352f8ada26ed9b7","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260318195259.6f88dc1_1773863610806_0.3719427220105296","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260318201252.11f07e5":{"name":"remoteclaw","version":"0.1.0-next.20260318201252.11f07e5","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260318201252.11f07e5","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"51140a4d66d2f6ac3e6d7cb4d1b139ab07d403ff","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260318201252.11f07e5.tgz","fileCount":2224,"integrity":"sha512-yXL9a1E6Ko72SUkJYhWU6R2Uqmi1QnajvL+h8UvYUmuT0hIaSElyDbOVCV19gV+OreM0l2rORP8qopY3wdcCwA==","signatures":[{"sig":"MEUCIFqTgMd+huO9fyIzHcx3LpR+dhPCvACnpvlAhVPKBjY/AiEAohCjYjkUNdIdlALd0EJj//HnO0apg4SmfdNyqbjupUc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260318201252.11f07e5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24526841},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"11f07e50c4b9969f167e2d8ef4742894bcec4293","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260318201252.11f07e5_1773864803638_0.3544267908307801","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260318205137.d10590f":{"name":"remoteclaw","version":"0.1.0-next.20260318205137.d10590f","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260318205137.d10590f","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"9e07eb4a48c16271bf2d5ef0a3acf27a39fbc4cf","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260318205137.d10590f.tgz","fileCount":2224,"integrity":"sha512-ZfAe67qtaryQs+VyYihScct1w1QR4kVxnAcVUqx+Z3cGpv/O0D2zxvybKy34a0i+dE9Oaa/SypQLSuJBaD5otA==","signatures":[{"sig":"MEYCIQDsCvNNPzhkUZLMA2gqZCtjnaIv4ft5ZSDLKblU7vKkDAIhAKHvBUkuHi8IdzmIbNgHsDPCBeY0WmwQPDxKYXKqamDR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260318205137.d10590f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24551358},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"d10590f01c0b0fa008d8a67302eb080e7c436ed8","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260318205137.d10590f_1773867127406_0.6515091233514865","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260318210332.da23bc8":{"name":"remoteclaw","version":"0.1.0-next.20260318210332.da23bc8","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260318210332.da23bc8","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"1cbaad958012649a02d98f0269bdc8e2cef03a3c","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260318210332.da23bc8.tgz","fileCount":2228,"integrity":"sha512-BNDfm400z4CM9qT4/HPBWKWctwMB+G2w4ZRh4U3XjuwHyYL/W2jg03zzvYaoXMo8NkRG1SC+3MD/NuUmnn/Q7Q==","signatures":[{"sig":"MEUCIQCNWFb7GbcF/xkS4H5/74Q9RG5mSq8EzI4MxXATxQiVRAIgCaQGYQ5IGmboA4jai0CuHIvf6JGtx5SjLnetmDBGTXo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260318210332.da23bc8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24558077},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"da23bc881ec0733df8a1bd7e6cdd63ee58879e91","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260318210332.da23bc8_1773867843885_0.4851546633747428","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260318213531.df6c5e5":{"name":"remoteclaw","version":"0.1.0-next.20260318213531.df6c5e5","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260318213531.df6c5e5","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"7644473c82473d872222b78abaaea92242a03926","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260318213531.df6c5e5.tgz","fileCount":2232,"integrity":"sha512-KQLF3ZOTq2vBTeJA4KeefQmy6MIrtcT+jvf5lpp4YF5yCwW9mfZ5Y/tV3pHdfyxejP8jfJINZheZjw4LUl25vQ==","signatures":[{"sig":"MEYCIQDDqJRrY+wwxkjnEVoNuupw5gQ6pisOuS+WdXdItRM8BQIhAMljLzg9mwWpjiGOPzm2lmJkwMO6Q3KeEGLAwyJOEsNQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260318213531.df6c5e5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24569115},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"df6c5e52b7d4f52e35426558d6179e700ec80e90","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260318213531.df6c5e5_1773869761537_0.7870987458499288","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260318214536.a449b03":{"name":"remoteclaw","version":"0.1.0-next.20260318214536.a449b03","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260318214536.a449b03","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"30c44f15f845855c0ea68e3e7578f44c91db95c6","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260318214536.a449b03.tgz","fileCount":2232,"integrity":"sha512-npHBMg2mTi62Vp4KBh9ENGbYCfaAFLYoIKyy2gucAb68Y+ILkA+7iKfbb+8KxVE+xmb9rFInv3wZWMplPqj+rQ==","signatures":[{"sig":"MEQCIFZiwbZaeiNj27PjCcoJY3AlLfqcgZ+ZFUymUfdPu+M2AiB7RGmrNy2xB0sJonraQ7Scn8KrivTFEeu/Eujd5smwaw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260318214536.a449b03","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24579104},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"a449b03a5bc14b89b4bae9a02a27b04d491c6224","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260318214536.a449b03_1773870367943_0.9312031470516211","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260319002512.42d3649":{"name":"remoteclaw","version":"0.1.0-next.20260319002512.42d3649","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260319002512.42d3649","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"929675752541b96b8d2d18684caf55fbdee04059","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260319002512.42d3649.tgz","fileCount":2232,"integrity":"sha512-+TLtZVevNouocAkVD31vL/OrAxt0DULbs0I+boeQoG0dRZQGEqtfWO5Q2cBV3SC/XoxZoKDX0fFvVGpmB3+8Cg==","signatures":[{"sig":"MEQCIG7zYOXdu1yIlL4sdtdbB57HHnvXBsewTOcPTbp2iWTaAiAkRBkZmE67pFIn3fmWx5Ys3+zhvV5c6Km3EyrudYkPRg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260319002512.42d3649","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24581790},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"42d36493432adda7337857600b56fd09e248fbb2","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260319002512.42d3649_1773879943166_0.22333074967796995","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260319005756.bd8aab7":{"name":"remoteclaw","version":"0.1.0-next.20260319005756.bd8aab7","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260319005756.bd8aab7","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e8f2b631c033b0c5fcb194f4d8cc65b118f0b73a","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260319005756.bd8aab7.tgz","fileCount":2234,"integrity":"sha512-9oBpSjddhOHLif9g954uHYvpvQc45bPCGNxtJmUvXeVlyZmsTE7ZUON+SFALnhcZ7VECxzmOqr1vNfslRQ/N3w==","signatures":[{"sig":"MEQCIBi+WyVTeA07QJPRkcIgOjXM7LM8VeXb4FXobBNnuuYWAiAMc5tYlARO6o/ocSPwj2aUpZS6/PO/5fqDgC4owCybxA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260319005756.bd8aab7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24596983},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"bd8aab7f8557cdb59eb8ecf67b7195971094ad58","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260319005756.bd8aab7_1773881907047_0.4160960053402645","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260319011330.1872f43":{"name":"remoteclaw","version":"0.1.0-next.20260319011330.1872f43","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260319011330.1872f43","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"1dabf95771c172658c23c81af1b6b9ebdec4fe26","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260319011330.1872f43.tgz","fileCount":2234,"integrity":"sha512-+qSDkdajnXAuui2azrwno1b8jBKrp/bb3trh5jiyqL0qvxj6EN5HfesOU4WpsIDd1c8iWKLlEhDimeABBOUlbA==","signatures":[{"sig":"MEUCIENB8twiZN5dECZ7j48VlnCK/qbcMxVqUuLqvqQetW4JAiEAyMyFk9hfd/gvQ1ExidyBA4n8lWvJTBEyhk6MfQK5mEI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260319011330.1872f43","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24599875},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"1872f43c215df4c2827e7fdd0c7f5f4792ca09c7","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260319011330.1872f43_1773882841604_0.7083305379871421","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260319012518.4e60e53":{"name":"remoteclaw","version":"0.1.0-next.20260319012518.4e60e53","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260319012518.4e60e53","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"bb4601c6895b4c621618c8fc02d31363dceeb81b","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260319012518.4e60e53.tgz","fileCount":2234,"integrity":"sha512-3nElRyS/Y6SeiC48ov/kb/VIRPPPOebdQDmj8UvNu2onJqdYVYYpyERGni1AlMwkLWtfM497/Zrks5DULxLlUQ==","signatures":[{"sig":"MEUCIQCaaA8zsjvhP8xI/qP8811+ZMNUEdoD+OwrXmr0M0dg5AIgFn7ppnwNomSayq1Pd1HkmSIRKp2uNAycAF3p/BVwhDE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260319012518.4e60e53","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24603755},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"4e60e53deb0f4df37343fd8f747479977584a635","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260319012518.4e60e53_1773883550632_0.8884703312479167","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260319020925.4e43bb9":{"name":"remoteclaw","version":"0.1.0-next.20260319020925.4e43bb9","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260319020925.4e43bb9","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"062bd9803ada0bfecfc214efdac8cb355e25988c","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260319020925.4e43bb9.tgz","fileCount":2240,"integrity":"sha512-ltkcUhlmL8oLV5kZ+x3tgx6MBXt9xnnUbE8najKuNHqnthaGIAS4WEbCvSPbcYWZtaK1N4Zp3zxKvqUw1IrBbA==","signatures":[{"sig":"MEYCIQDgHWG+zwna5tCp2VGRsvRimEHuD0Uh2ZNcrR432r9woQIhAJi+tQv8FU65dL0YjBzhwiJVjksVr+w5E+jBLq6vTwga","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260319020925.4e43bb9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24630512},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"4e43bb9a573e71cb590a63b79b4f73f119d2ae3c","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260319020925.4e43bb9_1773886197972_0.6091388836606746","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260319022335.0b978fb":{"name":"remoteclaw","version":"0.1.0-next.20260319022335.0b978fb","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260319022335.0b978fb","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"80392696318805452fb81b304a0084cdb31ee60f","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260319022335.0b978fb.tgz","fileCount":2240,"integrity":"sha512-KduMeKA8LbPQ0AQOgBv6YbOkbGC8AhkRqc/1V5Kp2Ny65GXlGkUkiznQEBMvUG/WG2BaqOfx5wUIEn8+1uFC3g==","signatures":[{"sig":"MEYCIQDV5SykeuoUd53QWqOs1tM/yCc0jZTBSUaH0Khs+1IBSQIhANLoR3JXKo4eroPlYJIh1pTf0jRGxZbbIIWmtXb2IxLb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260319022335.0b978fb","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24653529},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"0b978fb022f0f57cd50bb2ca2e1e543c24472a0c","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260319022335.0b978fb_1773887046097_0.7739076972537913","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260319025208.0f73935":{"name":"remoteclaw","version":"0.1.0-next.20260319025208.0f73935","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260319025208.0f73935","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"26d329bd671c71b0ff99145b148972af9dab4b21","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260319025208.0f73935.tgz","fileCount":2241,"integrity":"sha512-KyMxcJytwQN8JUghvck3VVwKqi9Rm22hAK84EsSAQ8l3QbbNii7huMI5uh9xpxkzUhVd5z6KvbutqCi3k/0ShA==","signatures":[{"sig":"MEUCIQDZVSxmkn3CLnVXc5YUm6DHZQNzmoSk9YQUcZJo0v4TTQIgfEMNinHo3uJhR4mFMYmiYiAqlR+Ql0jSIc/WGna6IY4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260319025208.0f73935","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24658163},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"0f73935c65b25dad80167e56fde660906ee26a4d","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260319025208.0f73935_1773888759175_0.14076018051114914","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260319032430.f3500a8":{"name":"remoteclaw","version":"0.1.0-next.20260319032430.f3500a8","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260319032430.f3500a8","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"faeb9cded395dfa93517d30caff6756dcbb21604","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260319032430.f3500a8.tgz","fileCount":2248,"integrity":"sha512-0XpYo6uvBJ9RCrk0YllFLFeojSd33I02TxVwkgtRPq6snPzUlmuHpVKnhDOgD04vsaAQ5BF7VLMeNY1GDb28Bg==","signatures":[{"sig":"MEYCIQCo/3B1sMjaX+x9V5Ly3GaMIWLy4mI1untNil6UdDnG6QIhALsybXZUYNatLSt4blQGykQTp5dnlmvq5bMIkCdkuzmY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260319032430.f3500a8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24775955},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"f3500a8c4c82b11158408ef93982b18e12bc9db5","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260319032430.f3500a8_1773890701292_0.3247432967798516","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260319034811.3c11c3c":{"name":"remoteclaw","version":"0.1.0-next.20260319034811.3c11c3c","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260319034811.3c11c3c","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"6a99654fa4308e52a24b608c1d19741ad96cd4a5","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260319034811.3c11c3c.tgz","fileCount":2248,"integrity":"sha512-mUd6LEneMGE9fU2vNl9FJH3PVxwfdPgyC7I8IWvmoknY04tU6Tt+jGk6x15Bb7dYUuPDkeoQVBrSnyaDXj/yJg==","signatures":[{"sig":"MEYCIQC/fu6Jdva8b79xk58DafrvAlum+DBpwXmsqoJ+Vtr1SgIhAPO5ENQrxrPN6371u3QMejo6z+O79ovQ/1lmApUuelB4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260319034811.3c11c3c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24777042},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"3c11c3c0599a31dda225149de10813c9eec7c728","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260319034811.3c11c3c_1773892123426_0.2943495856988323","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260319064032.aef02f1":{"name":"remoteclaw","version":"0.1.0-next.20260319064032.aef02f1","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260319064032.aef02f1","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"47dcd0a210731fd50631d4e80fede7038e3b9beb","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260319064032.aef02f1.tgz","fileCount":2248,"integrity":"sha512-/mLiz2U30fqZOFQu2iUS6IzVqfx/VQ/Lwea5TQvx5hO/np5xBeRhkD1n16l5r9OWA738Pa4YK6RczWSBzu4zjg==","signatures":[{"sig":"MEQCIHqFKo3Ul5yQQdWiCHo8c4mGt0i8uNpcKIrUPSOX7O7kAiAaSDizqbcAoEyx2uXdTKbjTti3wFvHEO9kfTKv6PjxaA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260319064032.aef02f1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24782318},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"aef02f1069aeb7331df6dfc69aab94728b380c20","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260319064032.aef02f1_1773902462891_0.6933119043407803","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260319072229.78ad251":{"name":"remoteclaw","version":"0.1.0-next.20260319072229.78ad251","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260319072229.78ad251","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"68ada8498a659793410cd55ab630c38ea7211930","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260319072229.78ad251.tgz","fileCount":2253,"integrity":"sha512-AyOKiLtNqzB/4ucErANcLGZe/bSCdOPDSrL3uo55p7M5hTTc0Slhkete4ACVZeBzUbhRByaj5Q8N0xv9g5qRSw==","signatures":[{"sig":"MEUCIQD0bWdGIQFNydVfouhrfhakwlVenbRmqkPnxIxpZrxCqgIgLUTDVmrC47YnqNC+HP7VG77cbDrI7fuv/ferqxS6osI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260319072229.78ad251","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24802119},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"78ad251b405b58b8f62b6fa02190f3939ef3f098","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260319072229.78ad251_1773904982644_0.7427534740860597","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260319074633.ca173c5":{"name":"remoteclaw","version":"0.1.0-next.20260319074633.ca173c5","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260319074633.ca173c5","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"42c34b1fbeea244c9cc7250144904da66f655786","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260319074633.ca173c5.tgz","fileCount":2253,"integrity":"sha512-nY/sFtZByEWjgn2kfrE0ouS4Cg/Ax6Ta6IpjIbmedb5GJbFQYBeaU4WeA6PLQ7QWG7X3FdEe5s63oyK46QsvMg==","signatures":[{"sig":"MEYCIQCPsRChwoDW5N2UozVs0SLwSDxn4A6msTqGVgu9ojxjkwIhAPXACiK3cABKbwxC8vtmeFuuhkTmKAB+JmYsFyKk9OxV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260319074633.ca173c5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24808595},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"ca173c5f220073004810bfea5125d10ac4399c89","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260319074633.ca173c5_1773906425543_0.5534437965392014","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260319080117.32d836e":{"name":"remoteclaw","version":"0.1.0-next.20260319080117.32d836e","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260319080117.32d836e","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"cdda36fef258329bab2d9d744fdb2852ff8093ea","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260319080117.32d836e.tgz","fileCount":2253,"integrity":"sha512-w3u9Hcrg4Ep23vjITUtsj1321vUqhGS+1LPuQCj9rbZxxTvpj0+mLE/fZw6fb0KSZUBjZ5xh3iU7xpiYYIZmTw==","signatures":[{"sig":"MEUCIQCRHcGfNu028ZKe41nzNLW5yFwC0iCgktDrXeyUHTKB9QIgTurvjOm9ZUurERSJgKiWA/9VEuOOSvxZ+auG/02SsQw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260319080117.32d836e","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24808587},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"32d836e1a4531b8468897a4260dcf4550859e56a","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260319080117.32d836e_1773907308755_0.7189072091874151","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260319081402.9c20f30":{"name":"remoteclaw","version":"0.1.0-next.20260319081402.9c20f30","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260319081402.9c20f30","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"79bd952f10a4c49daa9ef6a23d1b6754c320eb40","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260319081402.9c20f30.tgz","fileCount":2254,"integrity":"sha512-+dO6CVOjwQAYW1pNpRCju0Uy4zqCIC9nzPBQRoZT0iPYL+XM6NgHLDViVgRsspaijxpnXzwhsXdCinsPjd/QJg==","signatures":[{"sig":"MEUCIGUYGqx9O55xBc7+1GfqL7he3D9f0LWAItRG5zuOLtdhAiEAz9a7UYgpPlsak+j4XTEkGHkKOq+I/nuk+4dq5qcnfhc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260319081402.9c20f30","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24812012},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"9c20f306ca891cce594a15459f9ad2131a60ceca","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260319081402.9c20f30_1773908073741_0.755620387819798","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260319083852.e7e9541":{"name":"remoteclaw","version":"0.1.0-next.20260319083852.e7e9541","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260319083852.e7e9541","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"7d26a61eb9f5a16ffdd899b69d1573ab5567a5d4","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260319083852.e7e9541.tgz","fileCount":2254,"integrity":"sha512-2+rIWjn+WaQLPr+Q1OjXiCI9eJVGkWOsRW3nMiOfHXo68gEzCspqH60RwNmRDZ9RgANfeGx8e+ydLn82QhHuAw==","signatures":[{"sig":"MEQCIHYTfLa7eOk7dkPL27dxt77WbHLC7zrliukCuBqKuPEuAiAI+n4631JpOz1j1n82RDzM2DVMjYuckvDbXLO+2wglYw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260319083852.e7e9541","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24812008},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"e7e95419b319251ac71c0805c51c3767b0c268fe","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260319083852.e7e9541_1773909563499_0.03302204885018378","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260319084531.6abe996":{"name":"remoteclaw","version":"0.1.0-next.20260319084531.6abe996","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260319084531.6abe996","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"ad229b5f008262beb956eba742ab59cdcb95628a","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260319084531.6abe996.tgz","fileCount":2254,"integrity":"sha512-ouzhAI/4sobA4EmdomZDB5Fcrr+gBCA7cRR/JKl+PJTrQcOnCAiDd4UojlIVkajhHLykQXXN3KZAiYzh0rK+QA==","signatures":[{"sig":"MEUCIB3FIKAgY8byk9JIfoZ9BmQOXwjG/dIj8X+C4yjsUASqAiEAjt+h6Pb/9oxd2A48hlRH49eR7E/coBxEiWPLScuUiyA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260319084531.6abe996","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24815887},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"6abe996399a194d1cf1e0467a40a1dce36c947b6","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260319084531.6abe996_1773909963255_0.4890456010974664","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260319091316.2207d56":{"name":"remoteclaw","version":"0.1.0-next.20260319091316.2207d56","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260319091316.2207d56","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"882099babfbda9781bc8de91ae73627a9dc1c7e4","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260319091316.2207d56.tgz","fileCount":2252,"integrity":"sha512-DZqkGJpXEUUVGqs+5jMNDZ6oDcIN6X7bMJKFvY6mJlj922Js53P8Uzz2sviOiCgiIXWuoKOz4FL36EoDyqIrpQ==","signatures":[{"sig":"MEUCIHXtEJAceA8IjMHmGJD7vhHNY6ljnASQDS4FY91ZoyDwAiEAqj+NIGcYYqAEFe6efnku98goGivsm8KQscYVbBiKJ/U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260319091316.2207d56","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24871784},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"2207d56411b19d890f46fd72f5dd8e5dbf981670","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260319091316.2207d56_1773911627371_0.8797581178884035","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260319091914.3cc4a0f":{"name":"remoteclaw","version":"0.1.0-next.20260319091914.3cc4a0f","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260319091914.3cc4a0f","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"ca67975caed7ad80da8af84f45566ff977c0ca26","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260319091914.3cc4a0f.tgz","fileCount":2252,"integrity":"sha512-nWo1HRqH1zMMCiUPFSzv2WpkRseiOlL3D7ZZyEWXTTObbMOMRk4MSHHoQssAWtXz4eNxqgdmtTKVgItAML7K/w==","signatures":[{"sig":"MEUCICDh9zEy5nLxIHtk5wbm9DH4Ea3etRmIDcTTLAQmlbDBAiEA49Fj4eJvCOg88ms4I5tDrbDuU4eiDXNolbGdRq42jlQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260319091914.3cc4a0f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24869176},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"3cc4a0f866e190ab3b9d8adf8095ca2ced98259b","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260319091914.3cc4a0f_1773911986113_0.2737090161411846","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260319092500.d480dea":{"name":"remoteclaw","version":"0.1.0-next.20260319092500.d480dea","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260319092500.d480dea","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"a6b928411fb5acd5d9c32b9a4dcd8456b479a46f","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260319092500.d480dea.tgz","fileCount":2252,"integrity":"sha512-3JuVR98PTzGI+dxJ4MwbS+HDdFV0he0fCNRB4oAkriTCq1GvGc/oDRIwEig+aV0pi7MgGLvAS+kLJx00a1bTNg==","signatures":[{"sig":"MEQCIHIVk/5gZX8J7Ae3NC15Zf1RGrWjpFF4xTDdoCURB38rAiBT+NO3yGmIu3NnrymE7/jbf6rsNKvdH7yqrWHVBUqRkg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260319092500.d480dea","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24869180},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"d480deae58eb1e8691038d78b3d16ad12b8c7fde","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260319092500.d480dea_1773912332636_0.9844225894007044","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260319093124.314ba2a":{"name":"remoteclaw","version":"0.1.0-next.20260319093124.314ba2a","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260319093124.314ba2a","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e16bf445241f363b9f793a3e19bc83b29c9a82e3","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260319093124.314ba2a.tgz","fileCount":2252,"integrity":"sha512-y63Q7cKq+btLPnBfJusUp98dzoqVUrGAKcYdpQ7r71evjopB5LMFh+VNIEUobDdqNrvZDr86oruL/daJtzRvWg==","signatures":[{"sig":"MEUCIBhUJCtOcGQv05hG+L0/VjcCINLFw7Z66QSWMx5gNeREAiEAyGH2lU85hOcNEqI2MIxbdNYTmUCd2ZH1PBREcJlkPeU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260319093124.314ba2a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24869180},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"314ba2a6cde218a6f93478ffffb8bfe289bb8521","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260319093124.314ba2a_1773912714078_0.5186684411207654","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260319093651.ee1fef7":{"name":"remoteclaw","version":"0.1.0-next.20260319093651.ee1fef7","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260319093651.ee1fef7","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"77a9672f31d60310f7fb086fb5ee54020b74d113","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260319093651.ee1fef7.tgz","fileCount":2252,"integrity":"sha512-mYxUZ612Wnlw3uM2WuINmVX1y6hgnPdOW84C2in+C7IBBs4jij687b8Wrt33XbaAy15c6Cbt4d8RNJPSAkjnzg==","signatures":[{"sig":"MEUCIQC+GOpjQ3awq9e9dJO0savAY0mIDCZ4RD/S/pxk1yl1XgIgPJCSnnauC33y0uxiR3QpZdiwVVsCTVF25muuhyA254g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260319093651.ee1fef7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24871894},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"ee1fef7551aaa4371b6e572690c7f175a8dd7085","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260319093651.ee1fef7_1773913041602_0.5753489359020256","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260319094410.e14209e":{"name":"remoteclaw","version":"0.1.0-next.20260319094410.e14209e","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260319094410.e14209e","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"c64d0af0ca27cdd239fa0e27a111a2c542881c3e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260319094410.e14209e.tgz","fileCount":2252,"integrity":"sha512-i0EKRDv7ly8uR3Xlmh4yPUbZ2TeU6sdoVA5b/a3DCgmA9bSCLct7hDRHodTXAjoKkgYUmHF2W9BTVtM4QN/EXg==","signatures":[{"sig":"MEUCIHiidHcv2/YDOHtjrP9tZ5gZlPe9PVHrUtvHpCdI/ZW0AiEA2hj6ANiXKyz1VaUfIgylZ5ml0k1NdFWry6m9BhfGqsM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260319094410.e14209e","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24869176},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"e14209e03a5e2390540a2f9116b6d16c1ce4cc04","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260319094410.e14209e_1773913481897_0.9532004978538611","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260319095231.b5bc044":{"name":"remoteclaw","version":"0.1.0-next.20260319095231.b5bc044","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260319095231.b5bc044","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f4153e8641409d955bae9adc5d6e89094b995c52","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260319095231.b5bc044.tgz","fileCount":2252,"integrity":"sha512-ZyaQ71eqmRSPPWeNORu2WY6X7xZaOLXwgpsk+mXlh6qQpfwUv3Gfop+jiJxGo3cTGJ775dZESCxSOXPPL4iegg==","signatures":[{"sig":"MEUCIQDad556TCRH/ZtwMIaaI2B2abygibe4B1uB/N4tz5QBZAIgECFkZVhpqyBWYO6Um4G4DkFtHU01EtQWGG334GIt2R0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260319095231.b5bc044","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24869172},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"b5bc044e06ff533110d12780e10db93f4dc3301e","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260319095231.b5bc044_1773913984351_0.15432274341401864","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260319100151.771f36b":{"name":"remoteclaw","version":"0.1.0-next.20260319100151.771f36b","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260319100151.771f36b","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"8d02ea3230952cc81fec936120b0ae48bf787390","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260319100151.771f36b.tgz","fileCount":2252,"integrity":"sha512-CTziOMmhPJ6hs/1hETQElgZbUfEG+UHpztqg81rPD1ku+LkNd+H4v7/XvM1tuYz16BSME+xZWTwSrvmn91A6xw==","signatures":[{"sig":"MEQCIC4DbuJwl7KLhVngKtPCKPipSC8AiedrhDd97d2bOM/UAiAJ+uPleA8Jj0SJjcDvBKk+G8JpVtLFF2VNIYX0q5fIpg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260319100151.771f36b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24875853},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"771f36b5810118043be108a8db6d40c7af8e2720","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260319100151.771f36b_1773914542060_0.2280857943404211","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260319102312.2b84299":{"name":"remoteclaw","version":"0.1.0-next.20260319102312.2b84299","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260319102312.2b84299","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"54f4105e15fccb21197a4e56c671a723b164cd05","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260319102312.2b84299.tgz","fileCount":2252,"integrity":"sha512-AyBBiIhYHCZPwI46ff0UlvkdV2xPFlenbgcfR5blNJJG14U3BSJonCf4E/6TZMLvCvBs5d9Fzl8Yh3rAt5PuPw==","signatures":[{"sig":"MEUCIHZcd4BDGsXz+H7jRMHzoiEtjqeP8mGzKYE1H9BHnPHcAiEAhgj75iSsnPcAp1WESMuvKwu191oRTWhfRqdO6ImXGlI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260319102312.2b84299","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24875857},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"2b8429977f75029b59306b88b312e561fdc3d2dc","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260319102312.2b84299_1773915823290_0.9885319207064038","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260319105816.603b2a5":{"name":"remoteclaw","version":"0.1.0-next.20260319105816.603b2a5","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260319105816.603b2a5","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f02124ed068a6086b23fdde49c56bdddc9df592a","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260319105816.603b2a5.tgz","fileCount":2257,"integrity":"sha512-eyjtOfwmpEBFgpWpOOXOAOf+YodrAArzod2MfQnnLz/Yo1UpNw7t+BnKyxxNIgioSUH1bZJqy+a8u2e19e9FZA==","signatures":[{"sig":"MEUCIQD6sICaz8Gp7vOsxy4Z9/Z5BJ1lRXcGTrQA9o39GwX4kQIgO52tGkwWY7hrGx/u37oYx9Eqc5cGkndAHgHdK45FqSw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260319105816.603b2a5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24868882},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"603b2a540c084d7467fb72fcf87b3f1735dc1ed3","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260319105816.603b2a5_1773917928346_0.9303215063969499","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260319113541.525581d":{"name":"remoteclaw","version":"0.1.0-next.20260319113541.525581d","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260319113541.525581d","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"5969dfa8965f100841c3802f01fa3f3a863fec9c","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260319113541.525581d.tgz","fileCount":2257,"integrity":"sha512-AIzdQTtZfjsYQNbga2RXi/R4Os4AP3p00U7LXuYYXFbYWitW5Xn5PKe+57+tZuOWhyaAALDhjBMDaVT9kHrYGg==","signatures":[{"sig":"MEUCIQDyYeHaBl/qDhqckFkLMd2fFj/9MXgYxOVqdV05gs5jUAIgaWRgeVMjYVFQoEroH0GaYEOYK/o930ZjGQmBOvC8c88=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260319113541.525581d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24885580},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"525581d94560ac50be3f52760b66baffb5dd51e6","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260319113541.525581d_1773920173051_0.20778692420031253","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260319114828.fc75129":{"name":"remoteclaw","version":"0.1.0-next.20260319114828.fc75129","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260319114828.fc75129","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"a32498515567ba40e320c472f2b360f653a474d7","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260319114828.fc75129.tgz","fileCount":2257,"integrity":"sha512-oPixP8fj/baGPjZk2Br7iH6zLFgbmex6W1PrnBhj5lA4WMbHy1lrp3Sfg4rfGrVWjZDkRGQND7zRkO/bK/wuew==","signatures":[{"sig":"MEUCIFIXBN8WTqM3UrOINzqATHTtINQCtXcLx8BJGgkXVtM6AiEA+vz689Aqkob850pCabz8Lzuv7ZkFPjKCcOc/2MmUuBs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260319114828.fc75129","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24880140},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"fc751291d9caf83e9fd45d218b3c6b0cb01d6af8","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260319114828.fc75129_1773920940096_0.4825522650776617","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260319115509.9ac245d":{"name":"remoteclaw","version":"0.1.0-next.20260319115509.9ac245d","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260319115509.9ac245d","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"9303e676e05e2eaae965e9014daca6537874149f","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260319115509.9ac245d.tgz","fileCount":2258,"integrity":"sha512-oeya3gH69WSZnKSHdUAVAB7wLDvkZjigSQxWvH+yGD6G0y6ClzuiD9IBjAwMXYhZu26NAInJVoyAJ8qEUfinVQ==","signatures":[{"sig":"MEYCIQCzO9Rfiosksjl3xk7tLffXBlu3w0KiEHIwOBTdqn7pdQIhANiCYiJ9uguZxcOPF3evxnT0ktc/iH6te1kFZZmY6WOR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260319115509.9ac245d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24881134},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"9ac245d7f4fd09c96480f8a1d427e0b14b6fdc8c","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260319115509.9ac245d_1773921340385_0.8555842370474649","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260319120556.1841426":{"name":"remoteclaw","version":"0.1.0-next.20260319120556.1841426","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260319120556.1841426","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"4e4a0b0cd63d865abbb95f9959fabd07006f151d","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260319120556.1841426.tgz","fileCount":2258,"integrity":"sha512-gZVG2FLNYPGR1BL1Bn9GDVy4JfbTFeRYh1yDow6wDXdVjcIXQ/FJPlD4LEq9JYQKH0oiOIUeai4ZuoPBeIfJDg==","signatures":[{"sig":"MEUCIFl+8+rGPBy+fee/e2GXvLnPPVqEmzJrq9TTx5pvoA6KAiEA37zNYyKaaWrmHoXHUtzbHeBTY4iqht3EA0fOtMQq4Fc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260319120556.1841426","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24880158},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"1841426cb730dd2553fb5d63717ea148d0aefcb8","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260319120556.1841426_1773921992008_0.6250742505773152","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260319121342.5b8415d":{"name":"remoteclaw","version":"0.1.0-next.20260319121342.5b8415d","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260319121342.5b8415d","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"454c22ea32b238117bf3cabd522525ca52c8b3e5","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260319121342.5b8415d.tgz","fileCount":2258,"integrity":"sha512-Oud1qeU1PL9y4dPBe6Ue02IUQ4axlTxgccMcl2M2MpwIQwm9ROUGimZ7EvCFLViemIFZRDkmHYBcdqC5qY9Ayg==","signatures":[{"sig":"MEYCIQDQrtl4c4HQAdpeUw7qv3Zwgz96cv3TP3BKbNvPO2H4uQIhAJ92avUApLb1KqWaj738lu+lp6oYLxgcQKU14RTql9sM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260319121342.5b8415d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24880158},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"5b8415ddf251204acd2d3be8a1fbe51008925bb9","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260319121342.5b8415d_1773922452661_0.912509718345361","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260319122208.21ca761":{"name":"remoteclaw","version":"0.1.0-next.20260319122208.21ca761","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260319122208.21ca761","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"93de692e7fae72248cbb228372050eef421f0bec","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260319122208.21ca761.tgz","fileCount":2258,"integrity":"sha512-D3Re83DuneULerahrpc7avACjh5oRf6aIIV/ISqZtMbxGMYAg64h8AhpIE7/wCUYsxmcMvyGkue5KfOkx8vV7w==","signatures":[{"sig":"MEUCIBCH0G2zbuhhvk+MAcbiA1u585v54TiV06TGK4wrSrDwAiEApvIBpr3+BTN5yNGFzsHwrxnd40U9dZ42d1C+EaeAUAc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260319122208.21ca761","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24881644},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"21ca761e3071ee22bb142f5621071da7d8f2ee54","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260319122208.21ca761_1773922959101_0.05122934763378484","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260319123639.0c09c82":{"name":"remoteclaw","version":"0.1.0-next.20260319123639.0c09c82","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260319123639.0c09c82","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"2680a929b34b087e48d6c3abddb3bac7c1b6ba6e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260319123639.0c09c82.tgz","fileCount":2258,"integrity":"sha512-yMO569ixeKQZe4wdnhPcdxVdLv+4rfR6I/4AzPHvltHHVgAhEbrI08dX0veK98QFlnkQGBvjuNlhxnE8g0BYPQ==","signatures":[{"sig":"MEUCIQC+pflqmlRneJLWVhiXMU0GrObMWoAyGa3jxTA3OWuAfQIgU7v6iuA+9LWduOEiP2HC6dyQoO/FR8TaAw0jkPnq6k0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260319123639.0c09c82","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24886646},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"0c09c82119b85bdd7168de0d38bc9ff14c237c22","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260319123639.0c09c82_1773923832625_0.23188958209052846","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260319131717.0f95f1d":{"name":"remoteclaw","version":"0.1.0-next.20260319131717.0f95f1d","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260319131717.0f95f1d","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"1ff48e08f2d9e918f8a1980c8c97ac88b644003f","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260319131717.0f95f1d.tgz","fileCount":2258,"integrity":"sha512-NY24ji21+ffabxmprYRYtvIN7x/m6wSosNtwobxBRvbNgA1Uua3hB0y+SsR6pglnoXo4k1dRxsjinBUVoUEQTg==","signatures":[{"sig":"MEUCIBs0wXwlLzhQy52pJzV1sY6UWpM+8AOP+nX1Le3v/uNpAiEAzjNuouwWdB5MsUxGwD8XJqhXIeGPOZ6L+7n1k7nAh8s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260319131717.0f95f1d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24885352},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"0f95f1dff5c8ccecb1e0511f1d4c1caf00cdd0a9","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260319131717.0f95f1d_1773926269729_0.44693496755441964","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260319132306.3d1cf78":{"name":"remoteclaw","version":"0.1.0-next.20260319132306.3d1cf78","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260319132306.3d1cf78","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"4cfbb4b12abd8b0169431e0994f365547d4f09ba","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260319132306.3d1cf78.tgz","fileCount":2258,"integrity":"sha512-MRrnPOXSrvoI05kWOppHH2KQCZaXSflnduaE9BNhGCBOZ1TZJXQJ7HzFd2K+WGebjq2Azu3CKfRPlyOB1PzIxA==","signatures":[{"sig":"MEUCIQDB6O2aq8zusZYo4k1igyKipgFr6Be9rn0t8jRefvE8qwIgKNOnDVgzzRBAujkrolfG2WlxA8+boQO89HvekAGH3Ts=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260319132306.3d1cf78","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24889090},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"3d1cf783016883f92164047cb6900f2bd57bf3ce","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260319132306.3d1cf78_1773926618448_0.15223113205853522","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260319132825.5b2bb8e":{"name":"remoteclaw","version":"0.1.0-next.20260319132825.5b2bb8e","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260319132825.5b2bb8e","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"006ba8837ab7fb301741231d438b0f9023bdeaa5","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260319132825.5b2bb8e.tgz","fileCount":2258,"integrity":"sha512-KLhoR5kdsN3sm1bZ418MYXFEC8dys2LnA/3O6H5UnDG1lCFMvStmkvBB9aYrVB7U1MxCCCsYX0M37XF6ek7+cQ==","signatures":[{"sig":"MEQCIF+9bNn63XTzm2lME5+7x7/lkHKypJ4RLU/rE4mfXouEAiAw9dEHsS2sF6aAV4Nd3NNOpCaXYMGtEHFI8cB1piXL/w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260319132825.5b2bb8e","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24887388},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"5b2bb8e4178b4ef6198c0a59ce44bb220ffa2137","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260319132825.5b2bb8e_1773926935026_0.7362755871195981","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260319141650.4b29832":{"name":"remoteclaw","version":"0.1.0-next.20260319141650.4b29832","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260319141650.4b29832","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"59188e755da501a947d0e0960ca9dc0038f96d65","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260319141650.4b29832.tgz","fileCount":2262,"integrity":"sha512-BcfWEZJrEK1F1FoHmyraVV+2GmQyi7ZvUj6QoxEM/6vaZwZUQd6Lo5SzmKvu6cKfJDNOJBIafQRDPBwbiiu7ag==","signatures":[{"sig":"MEUCIQDPah4rdmEQuM71TLT1RGQz6eeNm+TT88hBiLpBTPunBgIgUnIPof0SznWcbZd1+4FrwGeEChTsAxRXJHX3GOC1Oos=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260319141650.4b29832","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24950340},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"4b2983234c564088c140be89a144d8e772357c8c","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260319141650.4b29832_1773929844876_0.3529208882073074","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260319150750.0626c79":{"name":"remoteclaw","version":"0.1.0-next.20260319150750.0626c79","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260319150750.0626c79","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d46dfef0b5cb67b1ff0b18abd30a2e4f0ba324fa","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260319150750.0626c79.tgz","fileCount":2310,"integrity":"sha512-bQ4gAbLFVZf8OpwO9UTaHbDekqKxHmVddE0wEfzpurYDg5ftuSNeIYnJtT7+bk8J2AM6kK5gYCTNdeZpPLjceQ==","signatures":[{"sig":"MEUCIQDuU8hVFNfV/FQbdNFqj1faHAejss8fcO/cZZHTeOZCuAIgfUxrZvTtqgmDvvThWqMOHpEmN1CCqNL9ef0KAm3LA+w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260319150750.0626c79","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":25924645},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./plugin-sdk/core":{"types":"./dist/plugin-sdk/core.d.ts","default":"./dist/plugin-sdk/core.js"},"./plugin-sdk/telegram":{"types":"./dist/plugin-sdk/telegram.d.ts","default":"./dist/plugin-sdk/telegram.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":"0626c794c3165be375338c917c74b2b39e4c5f46","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260319150750.0626c79_1773932901725_0.11723655298709756","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260319154119.7c9b7c3":{"name":"remoteclaw","version":"0.1.0-next.20260319154119.7c9b7c3","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260319154119.7c9b7c3","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"3b0a24a14e39c9058b433da7ab4769d593605c8e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260319154119.7c9b7c3.tgz","fileCount":2312,"integrity":"sha512-b+9xWOpFEu120NOpRKXnjVb0Ufo1HxyX6B1my3vQBktR0KpF2jPLPCwKQfqZDnqIwR3ws3LKP3kUTlE8/iyt5Q==","signatures":[{"sig":"MEUCIA3GPq7xhkVj4naPmXLJVUqYiLRdDCjHmvX4hnQ9+8ncAiEAspwtrrrdU1Oe6HP0R9vBz0Je17l33PzsVnH2LpU3sjU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260319154119.7c9b7c3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":25941094},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./plugin-sdk/core":{"types":"./dist/plugin-sdk/core.d.ts","default":"./dist/plugin-sdk/core.js"},"./plugin-sdk/telegram":{"types":"./dist/plugin-sdk/telegram.d.ts","default":"./dist/plugin-sdk/telegram.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":"7c9b7c3e56ecea78b6254fa1b7cc0a069f364047","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260319154119.7c9b7c3_1773934911842_0.6387024088872475","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260319155955.9914157":{"name":"remoteclaw","version":"0.1.0-next.20260319155955.9914157","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260319155955.9914157","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"822889b9dd844f68cd088c3f5a9b3c228d33ccc0","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260319155955.9914157.tgz","fileCount":2312,"integrity":"sha512-q78/r/wIyayWBIYMnxrWRpENeqGaErjjDNv2t5EeJRsjKA0dK7zgTCmCjiUwKmlZ9IDJi3N+bNlqrQwViMUZig==","signatures":[{"sig":"MEYCIQD0AcbY7oyuTSOGJ/xqp/ySF26zPREUDRc1O5occnFHXAIhAPk2wv6uB4p6Du+8Vjr+mhEAgwx6brpCDWnJALlsUITK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260319155955.9914157","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":25938598},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./plugin-sdk/core":{"types":"./dist/plugin-sdk/core.d.ts","default":"./dist/plugin-sdk/core.js"},"./plugin-sdk/telegram":{"types":"./dist/plugin-sdk/telegram.d.ts","default":"./dist/plugin-sdk/telegram.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":"9914157b2c03073a16f89bd4db695a44dbf949eb","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260319155955.9914157_1773936027922_0.9603307721741823","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260319163959.54f512f":{"name":"remoteclaw","version":"0.1.0-next.20260319163959.54f512f","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260319163959.54f512f","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"13b868ca3097abe2e27c56b87bb17194c1e04d26","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260319163959.54f512f.tgz","fileCount":2312,"integrity":"sha512-eMiVnuRy6jknzCvw7u8AqiY/aKPyUCNYZdMjHvvWK0T/lHGebif0ZmYR9UXSVPHcXoDDWnBobbBSkYP51M5Vsg==","signatures":[{"sig":"MEQCIDK0hMsP65z4HrTah+lRSRZo5+D5aGVosdvFmsUsXM2dAiAcpfY0H5I1MqLZli6LO6jqOUy6cEeyDeluNgKg6WJwnw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260319163959.54f512f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":25966748},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./plugin-sdk/core":{"types":"./dist/plugin-sdk/core.d.ts","default":"./dist/plugin-sdk/core.js"},"./plugin-sdk/telegram":{"types":"./dist/plugin-sdk/telegram.d.ts","default":"./dist/plugin-sdk/telegram.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":"54f512fcfd5f6ccc6ed4111165bd9950e198f0fb","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260319163959.54f512f_1773938432937_0.19222173371190832","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260319165912.ea44471":{"name":"remoteclaw","version":"0.1.0-next.20260319165912.ea44471","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260319165912.ea44471","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"5dddda9d32b510f1e541e6c3ffff77164d426c88","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260319165912.ea44471.tgz","fileCount":2312,"integrity":"sha512-WpAy3XGamQHXiRt5ZatZXP+1zqGgUq9rQ/gXvj562BzsIqoydWPPcwMHsJV4LDDZbSK7bgD85ArUIVun8rbWsg==","signatures":[{"sig":"MEYCIQCnNYUdB9wcSSW077oLsJASRn/SvtWCtA2pbo1CmcPipgIhALyklqhR8vMXkADu2d7rou9zJsZMaKJZBOyiAiDdkTOm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260319165912.ea44471","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":25968887},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./plugin-sdk/core":{"types":"./dist/plugin-sdk/core.d.ts","default":"./dist/plugin-sdk/core.js"},"./plugin-sdk/telegram":{"types":"./dist/plugin-sdk/telegram.d.ts","default":"./dist/plugin-sdk/telegram.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":"ea444714c418697d2519088b9a18feccb64ac38f","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260319165912.ea44471_1773939584669_0.15824360365380863","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260319170526.6f634c2":{"name":"remoteclaw","version":"0.1.0-next.20260319170526.6f634c2","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260319170526.6f634c2","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"1d15ee159e2eb3064107cb4e508cafcfe7a885b8","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260319170526.6f634c2.tgz","fileCount":2317,"integrity":"sha512-U968oksE7kUOkEbFO5ZuexHv4w6xe48THOS4ZjevCw4btDtdfG3BE57Lpt+Y5pb476MR5SNXkr51kc5y1UpA+Q==","signatures":[{"sig":"MEQCID74tqQFIdnz6xt0qDjGo2JEBF0G4gQ+nNjpGYPkFtQ8AiAUAw7cxgKQb+O6RWZwoz6gep94CxbDYQOeP0/tLps9zA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260319170526.6f634c2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":26070999},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./plugin-sdk/core":{"types":"./dist/plugin-sdk/core.d.ts","default":"./dist/plugin-sdk/core.js"},"./plugin-sdk/telegram":{"types":"./dist/plugin-sdk/telegram.d.ts","default":"./dist/plugin-sdk/telegram.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":"6f634c2648428bd0d3aa6a3aeb6236a8d7cfab9a","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260319170526.6f634c2_1773939959417_0.5489692569596767","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260319174813.aaf01f3":{"name":"remoteclaw","version":"0.1.0-next.20260319174813.aaf01f3","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260319174813.aaf01f3","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"bb0e398f7b49575e13cb976870d50beaeac8e3f8","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260319174813.aaf01f3.tgz","fileCount":2335,"integrity":"sha512-eroXmS4pUcVFnVw7pY34L0GSI6VtLTr/65bKC+BGwQmYhRxW3Ip7N/tbKCtlkxiQlEQr1md5swllAwq3EhXaNg==","signatures":[{"sig":"MEUCIQDS2fkl/xIsRuJ/18PekKdHKPZOwKU01APZnM5r3qtp1gIgbTO3BGUSPkMGATWXQ07+SlMTdoZneHDd4widU7cAwu0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260319174813.aaf01f3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":27740576},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.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/slack":{"types":"./dist/plugin-sdk/slack.d.ts","default":"./dist/plugin-sdk/slack.js"},"./plugin-sdk/signal":{"types":"./dist/plugin-sdk/signal.d.ts","default":"./dist/plugin-sdk/signal.js"},"./plugin-sdk/discord":{"types":"./dist/plugin-sdk/discord.d.ts","default":"./dist/plugin-sdk/discord.js"},"./plugin-sdk/imessage":{"types":"./dist/plugin-sdk/imessage.d.ts","default":"./dist/plugin-sdk/imessage.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/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":"aaf01f3e3508ff2a2e940a619626c5fa6342ee58","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260319174813.aaf01f3_1773942526301_0.9984854477229976","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260319175700.2c3c7a0":{"name":"remoteclaw","version":"0.1.0-next.20260319175700.2c3c7a0","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260319175700.2c3c7a0","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"23f1cffcf37e35fdb75e8b3bd290931cfebfee3a","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260319175700.2c3c7a0.tgz","fileCount":2335,"integrity":"sha512-IuBlH3NeOhzBL45iR4A7Z/yJBdKsZvT8FEMhHA1rDeNiUVry3VMDjQKq5vBcvwJqVu5QRlGj2YYEHt4CGlX8mA==","signatures":[{"sig":"MEUCIQCGRJjNPxM0zizZabkMDZIy0lqgdSgnNr8ijryLE1yDlQIgO+QTj/8a0HIyA4jbhWcMUwQs8rEAPLYdEH7sW/gQ0VM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260319175700.2c3c7a0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":27740572},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.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/slack":{"types":"./dist/plugin-sdk/slack.d.ts","default":"./dist/plugin-sdk/slack.js"},"./plugin-sdk/signal":{"types":"./dist/plugin-sdk/signal.d.ts","default":"./dist/plugin-sdk/signal.js"},"./plugin-sdk/discord":{"types":"./dist/plugin-sdk/discord.d.ts","default":"./dist/plugin-sdk/discord.js"},"./plugin-sdk/imessage":{"types":"./dist/plugin-sdk/imessage.d.ts","default":"./dist/plugin-sdk/imessage.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/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":"2c3c7a02aabc14fc5d95acd14ebb93b973117c24","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260319175700.2c3c7a0_1773943052213_0.0871424421552276","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260319180247.60cdd24":{"name":"remoteclaw","version":"0.1.0-next.20260319180247.60cdd24","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260319180247.60cdd24","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"51e8b2711bb9142eef4a97a30ab1668c4832791f","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260319180247.60cdd24.tgz","fileCount":2335,"integrity":"sha512-bedDT9MV432BoRube9h20W2UqhPvsVB3jZblpO8m47ay8yeOL0H9ZK2onUuOWYKdpWJjB2TpLp+nPRzAXYfnIg==","signatures":[{"sig":"MEYCIQDszyuj0REJU33Y5F8CUxoUjblF9Y+g88lFFdMmzsrOFAIhAKXDZXjdy8q3gzbnQxmtTi8ySrb7R0jEtVCFq6DhY9Ck","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260319180247.60cdd24","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":27740572},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.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/slack":{"types":"./dist/plugin-sdk/slack.d.ts","default":"./dist/plugin-sdk/slack.js"},"./plugin-sdk/signal":{"types":"./dist/plugin-sdk/signal.d.ts","default":"./dist/plugin-sdk/signal.js"},"./plugin-sdk/discord":{"types":"./dist/plugin-sdk/discord.d.ts","default":"./dist/plugin-sdk/discord.js"},"./plugin-sdk/imessage":{"types":"./dist/plugin-sdk/imessage.d.ts","default":"./dist/plugin-sdk/imessage.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/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":"60cdd24661146012d25d9bb9e481cfbb773e24c2","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260319180247.60cdd24_1773943399506_0.7357621519434145","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260319180922.73fa027":{"name":"remoteclaw","version":"0.1.0-next.20260319180922.73fa027","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260319180922.73fa027","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"885849f96d91d5c4867d00a85a84ed472b767f5d","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260319180922.73fa027.tgz","fileCount":2335,"integrity":"sha512-qAaxlLl4dDs7SxCBF8yi8S4kaGn1tSgik2D6vSw0Y4oaOHcAAx8eWxOCdu4yLmCFjACbRM8gMtqTkF0bcZ8XVw==","signatures":[{"sig":"MEQCIGV4NmdqGf0fDPnwFv9/izrWYvzKr/NvV80btxaWZkZhAiAC/6vk+/AQyFMu6hIag5Bw8WmlsInB9oPVQ/vmiqtXqQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260319180922.73fa027","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":27745970},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.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/slack":{"types":"./dist/plugin-sdk/slack.d.ts","default":"./dist/plugin-sdk/slack.js"},"./plugin-sdk/signal":{"types":"./dist/plugin-sdk/signal.d.ts","default":"./dist/plugin-sdk/signal.js"},"./plugin-sdk/discord":{"types":"./dist/plugin-sdk/discord.d.ts","default":"./dist/plugin-sdk/discord.js"},"./plugin-sdk/imessage":{"types":"./dist/plugin-sdk/imessage.d.ts","default":"./dist/plugin-sdk/imessage.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/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":"73fa02749560c2f234dd960497a40365065a8952","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260319180922.73fa027_1773943794310_0.1903992671100565","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260319181517.ecacde5":{"name":"remoteclaw","version":"0.1.0-next.20260319181517.ecacde5","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260319181517.ecacde5","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"78e1dfb0dd8075a90909dd6ac7a4f8ac6e865044","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260319181517.ecacde5.tgz","fileCount":2335,"integrity":"sha512-78+YVis+A10RZspIwgygFmoRVF7oXS+zlOcSmYkvaRHIcLIT2TqerhY/oHMGcgeWgE+g9ERuwp7Ywxz4hJaF9w==","signatures":[{"sig":"MEQCIENKfqJWfONbZvhDHWP3XPDMLMweYGLYT1YnR8DPEIguAiBdl0kEiVOzQoBju0/bR8985nyGwBpWlRARedngQLa9UA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260319181517.ecacde5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":27743228},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.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/slack":{"types":"./dist/plugin-sdk/slack.d.ts","default":"./dist/plugin-sdk/slack.js"},"./plugin-sdk/signal":{"types":"./dist/plugin-sdk/signal.d.ts","default":"./dist/plugin-sdk/signal.js"},"./plugin-sdk/discord":{"types":"./dist/plugin-sdk/discord.d.ts","default":"./dist/plugin-sdk/discord.js"},"./plugin-sdk/imessage":{"types":"./dist/plugin-sdk/imessage.d.ts","default":"./dist/plugin-sdk/imessage.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/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":"ecacde54e81fa6e234f8897f3f4e80b00f5ae5a1","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260319181517.ecacde5_1773944149869_0.08321567750019443","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260319182931.a698044":{"name":"remoteclaw","version":"0.1.0-next.20260319182931.a698044","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260319182931.a698044","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"832b1f5e82f3d9930e29674e6374a9c9c82d161f","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260319182931.a698044.tgz","fileCount":2335,"integrity":"sha512-h+l92EceOZ1IgSCEsLRU7jh/7DWn2VK7/uoeHcpjOjFoNuEqfmK9u+RcRKVAuM/b0f10zoXJ+Ez5+HIYXFLhXg==","signatures":[{"sig":"MEQCICmOsAjyub8KbBDUoFGyAC94t+3ujIRHf4S5UT1R9zTnAiB/7++PqhZlV3i/BcerzRKOGDslyOPRTV6IE/akU9RYlw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260319182931.a698044","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":27740576},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.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/slack":{"types":"./dist/plugin-sdk/slack.d.ts","default":"./dist/plugin-sdk/slack.js"},"./plugin-sdk/signal":{"types":"./dist/plugin-sdk/signal.d.ts","default":"./dist/plugin-sdk/signal.js"},"./plugin-sdk/discord":{"types":"./dist/plugin-sdk/discord.d.ts","default":"./dist/plugin-sdk/discord.js"},"./plugin-sdk/imessage":{"types":"./dist/plugin-sdk/imessage.d.ts","default":"./dist/plugin-sdk/imessage.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/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":"a698044e6589c6e69c1c3a760a67649bedd91c43","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260319182931.a698044_1773945005638_0.5692343901422734","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260319190814.a1e96af":{"name":"remoteclaw","version":"0.1.0-next.20260319190814.a1e96af","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260319190814.a1e96af","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"dd3f5d84079aac300f735d45ab40d6cdd46d1837","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260319190814.a1e96af.tgz","fileCount":2335,"integrity":"sha512-APzZKhHDergdo7XKOlax4geR2hGlqXJA9zqhVqN2Fw2rafEdfJM/3HsAOxKqL0aqohN59Ci2ULh6NTnveBpuMQ==","signatures":[{"sig":"MEYCIQCGu0dU4dgX+zGBTLYQjkKvId3lT+0kr4HB0An/HfZHRwIhAL438BMz3O4pDqcbro9A0yvgeYhtuwTA1+nRWjQ32rpy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260319190814.a1e96af","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":27743472},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.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/slack":{"types":"./dist/plugin-sdk/slack.d.ts","default":"./dist/plugin-sdk/slack.js"},"./plugin-sdk/signal":{"types":"./dist/plugin-sdk/signal.d.ts","default":"./dist/plugin-sdk/signal.js"},"./plugin-sdk/discord":{"types":"./dist/plugin-sdk/discord.d.ts","default":"./dist/plugin-sdk/discord.js"},"./plugin-sdk/imessage":{"types":"./dist/plugin-sdk/imessage.d.ts","default":"./dist/plugin-sdk/imessage.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/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":"a1e96af7da98c12e1108a341dba40fc5a18505db","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260319190814.a1e96af_1773947325397_0.11311707260358306","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260319194246.ea4981a":{"name":"remoteclaw","version":"0.1.0-next.20260319194246.ea4981a","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260319194246.ea4981a","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"0cc1112b58a85ba0bb9420600fa98eb51164a2b9","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260319194246.ea4981a.tgz","fileCount":2335,"integrity":"sha512-M8KO2e4XEWUPKMPrg7GhnjanaIHAHtZ/P+d7/K852yg63UnsKlFM9zIc5mnHaUgf4JYdjNSWuf0olran0Qbgmw==","signatures":[{"sig":"MEUCIQCSNsYgfr81h8F4X4SjVeEm3XIUWZykrs7PA8eQNoG0PwIgHHDyy+JpGq088lEXTZB4cRKkR0m6vRhuEIisMNDqoZ0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260319194246.ea4981a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":27792034},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.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/slack":{"types":"./dist/plugin-sdk/slack.d.ts","default":"./dist/plugin-sdk/slack.js"},"./plugin-sdk/signal":{"types":"./dist/plugin-sdk/signal.d.ts","default":"./dist/plugin-sdk/signal.js"},"./plugin-sdk/discord":{"types":"./dist/plugin-sdk/discord.d.ts","default":"./dist/plugin-sdk/discord.js"},"./plugin-sdk/imessage":{"types":"./dist/plugin-sdk/imessage.d.ts","default":"./dist/plugin-sdk/imessage.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/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":"ea4981aa09068f233efc19735bffd7bc68db3f6c","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260319194246.ea4981a_1773949397617_0.10081870472115106","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260319201359.7c7956d":{"name":"remoteclaw","version":"0.1.0-next.20260319201359.7c7956d","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260319201359.7c7956d","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"2696eb2a005fbbca4e1a8d439bf6fed021faf006","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260319201359.7c7956d.tgz","fileCount":2335,"integrity":"sha512-HtgdjdQNELZoq6FIz0nRWrvwcunJs1QKZRE72FdFH5O4mTNqoAXzGimKcoo8yInesvRhcotOrdYO+/zVUiYvBg==","signatures":[{"sig":"MEUCIQCi2I6Cem8ytO0qAlw8WrUErLYtnNqAPA94f2oZsrKPsAIgBFIt4rRCD6PlgMNB9on3LhdwvwT6neTIRy4I7nNXrXA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260319201359.7c7956d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":27822737},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.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/slack":{"types":"./dist/plugin-sdk/slack.d.ts","default":"./dist/plugin-sdk/slack.js"},"./plugin-sdk/signal":{"types":"./dist/plugin-sdk/signal.d.ts","default":"./dist/plugin-sdk/signal.js"},"./plugin-sdk/discord":{"types":"./dist/plugin-sdk/discord.d.ts","default":"./dist/plugin-sdk/discord.js"},"./plugin-sdk/imessage":{"types":"./dist/plugin-sdk/imessage.d.ts","default":"./dist/plugin-sdk/imessage.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/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":"7c7956d1ae8a7781348a39838be4f6666ed42ecb","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260319201359.7c7956d_1773951271980_0.11758388972182976","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260319202108.8ce4fb8":{"name":"remoteclaw","version":"0.1.0-next.20260319202108.8ce4fb8","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260319202108.8ce4fb8","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"6ac3d46a8c416fc2c191d4d8cc6ef01c681a6f7a","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260319202108.8ce4fb8.tgz","fileCount":2336,"integrity":"sha512-axwwPoWvpn+Yw0bf7F0089mbjhu823E/rVLNpfR225cHtIPr6RJsxtaEMo7f7Ot3LMMSdlao6mu5wlLuFav1Ww==","signatures":[{"sig":"MEQCIAT8Jp0RVvJWmrmBoWaogNpnsWR222GsXnnj65GB595+AiBrsOTNUFtjf7Hsu4AB/9BmaNrUqqToyBDoGAQwCYglhg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260319202108.8ce4fb8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":28405897},"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.8","request-promise":"npm:@cypress/request-promise@5.0.0","@sinclair/typebox":"0.34.48"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.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/slack":{"types":"./dist/plugin-sdk/slack.d.ts","default":"./dist/plugin-sdk/slack.js"},"./plugin-sdk/signal":{"types":"./dist/plugin-sdk/signal.d.ts","default":"./dist/plugin-sdk/signal.js"},"./plugin-sdk/discord":{"types":"./dist/plugin-sdk/discord.d.ts","default":"./dist/plugin-sdk/discord.js"},"./plugin-sdk/imessage":{"types":"./dist/plugin-sdk/imessage.d.ts","default":"./dist/plugin-sdk/imessage.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/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":"8ce4fb83cd9e23701f0f908b9356c3d7058258ba","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260319202108.8ce4fb8_1773951698536_0.8719048621869752","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260319202924.e7b762e":{"name":"remoteclaw","version":"0.1.0-next.20260319202924.e7b762e","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260319202924.e7b762e","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e25080b8b5e15668d88e4425fb0651e45970387a","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260319202924.e7b762e.tgz","fileCount":2336,"integrity":"sha512-endcGNnNlwp4aAfU+jGoOv7TXrmcytPvZEzjXc+BQv10/y4Og+5mXVSWhWsd4wRRTrtyjmVi0LbazCZTVUA+rQ==","signatures":[{"sig":"MEQCIEK1rf/Ha2E0PsgAeYTYwznj0qNfYZZ6+wYrPErBx+WaAiBe/Y5384VMzWbPTCG5NeCIsbKVwBCNEG9U/zq5BBISIg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260319202924.e7b762e","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":28410316},"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.8","request-promise":"npm:@cypress/request-promise@5.0.0","@sinclair/typebox":"0.34.48"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.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/slack":{"types":"./dist/plugin-sdk/slack.d.ts","default":"./dist/plugin-sdk/slack.js"},"./plugin-sdk/signal":{"types":"./dist/plugin-sdk/signal.d.ts","default":"./dist/plugin-sdk/signal.js"},"./plugin-sdk/discord":{"types":"./dist/plugin-sdk/discord.d.ts","default":"./dist/plugin-sdk/discord.js"},"./plugin-sdk/imessage":{"types":"./dist/plugin-sdk/imessage.d.ts","default":"./dist/plugin-sdk/imessage.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/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":"e7b762e8a048d512396f2f40d336262ae1aac32b","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260319202924.e7b762e_1773952197880_0.15545584138983015","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260319210002.68fc000":{"name":"remoteclaw","version":"0.1.0-next.20260319210002.68fc000","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260319210002.68fc000","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"ff0ea800d6abfa5d2380017b249fc4e090f93e95","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260319210002.68fc000.tgz","fileCount":2336,"integrity":"sha512-k4CHTWm7iN0cmfnj6r9T2DMsmEgCgXArbHjkiG1YrHeFWQmRdRn4jKNB8U8VoK0SvKeb1nvKbhL0wC6yR+voWw==","signatures":[{"sig":"MEYCIQCgYf5qnmsl/Q1M0t5vbE4SKHbp/GAecWUhHjUdvVVGTQIhAPa6a+yskFAcxnKem2bbgmNqowIiuzNjfol4Mdc4nqQ6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260319210002.68fc000","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":28419624},"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.8","request-promise":"npm:@cypress/request-promise@5.0.0","@sinclair/typebox":"0.34.48"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.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/slack":{"types":"./dist/plugin-sdk/slack.d.ts","default":"./dist/plugin-sdk/slack.js"},"./plugin-sdk/signal":{"types":"./dist/plugin-sdk/signal.d.ts","default":"./dist/plugin-sdk/signal.js"},"./plugin-sdk/discord":{"types":"./dist/plugin-sdk/discord.d.ts","default":"./dist/plugin-sdk/discord.js"},"./plugin-sdk/imessage":{"types":"./dist/plugin-sdk/imessage.d.ts","default":"./dist/plugin-sdk/imessage.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/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":"68fc000fe165f02279f5deff1a298d621252084b","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260319210002.68fc000_1773954034254_0.7063519964161955","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260319210608.38a051d":{"name":"remoteclaw","version":"0.1.0-next.20260319210608.38a051d","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260319210608.38a051d","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"6fd6aa807724043ade41bc0672b62cab44fbd21b","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260319210608.38a051d.tgz","fileCount":2336,"integrity":"sha512-26FH1K7WqKUkU0QIkV2N0cXYsMSPSqGSiRPzAeSR2MoB0eIf9KcMtjq0Ha1OEmDHfjH7NAud6dswT/fpSnvgLA==","signatures":[{"sig":"MEUCIQCwIQl68vHb3PR44rY4yFbciQd4morcGuBoepaFacqlegIgQLG+trddfZU71E4lcjdUgAAOylhjVrvv2uOVBptvbbQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260319210608.38a051d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":28422488},"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.8","request-promise":"npm:@cypress/request-promise@5.0.0","@sinclair/typebox":"0.34.48"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.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/slack":{"types":"./dist/plugin-sdk/slack.d.ts","default":"./dist/plugin-sdk/slack.js"},"./plugin-sdk/signal":{"types":"./dist/plugin-sdk/signal.d.ts","default":"./dist/plugin-sdk/signal.js"},"./plugin-sdk/discord":{"types":"./dist/plugin-sdk/discord.d.ts","default":"./dist/plugin-sdk/discord.js"},"./plugin-sdk/imessage":{"types":"./dist/plugin-sdk/imessage.d.ts","default":"./dist/plugin-sdk/imessage.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/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":"38a051daecdbf44f4c6b61513752ebce55d4c2b8","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: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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260319210608.38a051d_1773954400555_0.29681034305271514","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260319212034.1caa793":{"name":"remoteclaw","version":"0.1.0-next.20260319212034.1caa793","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260319212034.1caa793","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"47c47a0d78c81fef09a69df6fd574339b6e6e214","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260319212034.1caa793.tgz","fileCount":2340,"integrity":"sha512-QSOy2r/2MNcNuNZiH8ToccZzzAbJmFfHFv6OvD9eDGxotuXGsG0lpFHpI5syeYnswWLIlcW7WvL0x+H5w2Juvg==","signatures":[{"sig":"MEUCIBsy/RV9LUqgPYzWE1Jz/aNWKgu6SaubItLhvOsWPeh8AiEA17c8vSBqg+dQ6c7OLFcV5bUwo8U1Fku574q1XToKjr0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260319212034.1caa793","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29392824},"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.8","request-promise":"npm:@cypress/request-promise@5.0.0","@sinclair/typebox":"0.34.48"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.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/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/signal":{"types":"./dist/plugin-sdk/signal.d.ts","default":"./dist/plugin-sdk/signal.js"},"./plugin-sdk/discord":{"types":"./dist/plugin-sdk/discord.d.ts","default":"./dist/plugin-sdk/discord.js"},"./plugin-sdk/imessage":{"types":"./dist/plugin-sdk/imessage.d.ts","default":"./dist/plugin-sdk/imessage.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/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":"1caa793c9c4f7b75921e10fa68052915efdbd6b6","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260319212034.1caa793_1773955266214_0.7413425856198401","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260319214700.205b2e5":{"name":"remoteclaw","version":"0.1.0-next.20260319214700.205b2e5","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260319214700.205b2e5","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e9e6064993c72d9c911cafd851908e2c8944553c","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260319214700.205b2e5.tgz","fileCount":2434,"integrity":"sha512-34S5UpaAxlRDI8Fs51uAjmjuxeqhNJQAP3eq/OKpxxSW7fQqZh36o3tIUcOjx7KCojtci0M3PMuDle06aaAhdw==","signatures":[{"sig":"MEQCIHc9NQnGSgUus02WcKDqW992p/TWuWSEu0u4npnT6oZBAiAbQeIe3Y1EOMwpRGbpPYLPUf1d6cibxi2kcw/vZ9oGew==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260319214700.205b2e5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":31309785},"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.8","request-promise":"npm:@cypress/request-promise@5.0.0","@sinclair/typebox":"0.34.48"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"205b2e56f4d0155dac02e90b30d6332fbf28cdf6","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260319214700.205b2e5_1773956852283_0.8831533026714675","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260319215647.755f744":{"name":"remoteclaw","version":"0.1.0-next.20260319215647.755f744","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260319215647.755f744","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"6b697499584d7b37e7f8603ea807ae0bda3e702e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260319215647.755f744.tgz","fileCount":2434,"integrity":"sha512-F7XxE+VQf8q3lXJo1On5hjTpk0uwO0+ME+ghpwMl/7jSSqYGpxD7kC5vCJLsdjMm2hp9GQEUf/5GQ9z1PMqj3Q==","signatures":[{"sig":"MEQCIBbE0SVejD8TaMCAC/7GZPBtbFjqgLgl9EpuHTV2EJ8tAiBLrEfMK8hcyltGRctWl1E4q8i57jfbxMfS+iHHbcgc9Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260319215647.755f744","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":31309706},"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.8","request-promise":"npm:@cypress/request-promise@5.0.0","@sinclair/typebox":"0.34.48"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"755f744fd3c9ddc256b0baaec0cddd77b17710b7","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260319215647.755f744_1773957439584_0.6096363590856","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260319221353.0c380f9":{"name":"remoteclaw","version":"0.1.0-next.20260319221353.0c380f9","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260319221353.0c380f9","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"15112c5f90e869d401fb887bcb912423ec797151","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260319221353.0c380f9.tgz","fileCount":2434,"integrity":"sha512-iyKzOhuVmDCcTHCeVn7xzAy1rjUZjql/XktNU31O0WVWlCr6iM+nUI6mPtLaSNfbEJOkM0YTQkmjqNTopg8WPA==","signatures":[{"sig":"MEQCICqD46dHRrFHcPlOktlQ6dlzBN7P9czupADSV2RHGFIUAiA8PyJ7eXLQbw3Mx7EcwfdhR2Gtx2ckWSEQxU/2CN7I6A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260319221353.0c380f9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":31310864},"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.8","request-promise":"npm:@cypress/request-promise@5.0.0","@sinclair/typebox":"0.34.48"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"0c380f995aea74bf968cd8f88b8a810c9bcebe29","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260319221353.0c380f9_1773958466049_0.7778520925512782","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260319222439.970e043":{"name":"remoteclaw","version":"0.1.0-next.20260319222439.970e043","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260319222439.970e043","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"4c5a6d79a25de2f336483769c96feb078343f038","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260319222439.970e043.tgz","fileCount":2434,"integrity":"sha512-cZn05JFbaubCJfkVA5YvxitCF9EsHC1PNLIXKlLLLv9j4E7jRK7XfhG2huSykPssPEiKnYMCGyOY3/FbcIvtQQ==","signatures":[{"sig":"MEUCIBc28YfFoD/KbBS75tzBgve4r0dIVwtFQIVTFMnWVEyCAiEAn9lDtAPkspCzUkcm786IOcILZykyW/RQSOnimrv4+10=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260319222439.970e043","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":31313508},"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.8","request-promise":"npm:@cypress/request-promise@5.0.0","@sinclair/typebox":"0.34.48"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"970e043e760562100f503a93efb5e2164575314f","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260319222439.970e043_1773959113369_0.8715319867081632","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260319223058.690bbc7":{"name":"remoteclaw","version":"0.1.0-next.20260319223058.690bbc7","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260319223058.690bbc7","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"217ac71340194b23f4df3601d1e86061bf10a6ba","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260319223058.690bbc7.tgz","fileCount":2434,"integrity":"sha512-LfNK7zs1mfyGHx9i2bWiEjl4Mrf99YCpg4des5MC2Hg9PuUxXGo2KDqxiFaqv+h1nTNXXhFvVaRBeJ5qJT+sSQ==","signatures":[{"sig":"MEYCIQCs6g3vR2AlW/YNDyeSzGSVcUu5Suu1BYuLJwptahevJgIhAPKkQJ/Gjmcbrcb9QDeYpLQUOx8d0FoS1g5a+bw0eKyy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260319223058.690bbc7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":31314526},"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.8","request-promise":"npm:@cypress/request-promise@5.0.0","@sinclair/typebox":"0.34.48"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"690bbc78f3299e2c669d78a1b4f3a349e55b5f2b","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260319223058.690bbc7_1773959490634_0.10244617764958486","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260319230120.502321c":{"name":"remoteclaw","version":"0.1.0-next.20260319230120.502321c","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260319230120.502321c","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"96b8ca60194acf90f539701a5192cda95b546620","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260319230120.502321c.tgz","fileCount":2434,"integrity":"sha512-Gv4iA6m+1Iw6sDX58o/2JgcMwW4M97eenL4HYJ/0ztKuXb933R4HhTh3FRxyhzHM6Bzd2uFpNfWUWnjLHl9OHQ==","signatures":[{"sig":"MEUCIF1GLm2rm2oNjLUpwxUbfdfOJaRSIi/xz+aOxBdSgA2dAiEA7ct7zAUN5WqjeMHDIS1mVML+vAz6E/SMiEHnu9vr6zU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260319230120.502321c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":31314530},"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.8","request-promise":"npm:@cypress/request-promise@5.0.0","@sinclair/typebox":"0.34.48"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"502321c8087041a91f0cfebef9020ca2225fbd7d","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260319230120.502321c_1773961313297_0.45953301457431106","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260319232709.bdc79a0":{"name":"remoteclaw","version":"0.1.0-next.20260319232709.bdc79a0","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260319232709.bdc79a0","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"fe912536ee54b2f25553cfbbf42d8041659a9f1d","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260319232709.bdc79a0.tgz","fileCount":2434,"integrity":"sha512-JzdZ7Ih3vbM497zhgXe8+yi/qbyyBmJOgU1Y1c9GLQ/RsJoEQxfhaU/Z7jD0S4ytkfNiqrhP+bRg/UzJEs7vYw==","signatures":[{"sig":"MEYCIQC1FvWCw8xETfPmWHffiRYGYdi9gUWEW1Pv9oS9MawizAIhAIMFaUr3nhgvJXVPhBAQINLEj5wQ/YqAoWx3gyKe6JY2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260319232709.bdc79a0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":31323654},"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.8","request-promise":"npm:@cypress/request-promise@5.0.0","@sinclair/typebox":"0.34.48"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"bdc79a0fba51cc69a075d366e63d5569a4c6fb68","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260319232709.bdc79a0_1773962861545_0.5077580212322803","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260319233801.db80510":{"name":"remoteclaw","version":"0.1.0-next.20260319233801.db80510","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260319233801.db80510","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"de4c515420576c483cfc117852217266517d69da","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260319233801.db80510.tgz","fileCount":2434,"integrity":"sha512-X0Hi6vIBI+2hF1NpLBwXGu6tckplpc7f6nObRmuJSPJ+2x+XEyi4SEiq5P2rRH2oP9Fr2kz6Ch/1Xf+cGtc+Fw==","signatures":[{"sig":"MEUCIGj2aCwTWi8tBvzpBiv/I6KVARHcBIWnrXDPu5UBwNEsAiEAhi8lnhwbbjHy7ce4X8tcVI6m7cOTNgpBsdsDWRhZ2G8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260319233801.db80510","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":31328321},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"db8051043af2874cc5180aaad2783f45b1d85e9c","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260319233801.db80510_1773963515586_0.6817584243718087","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260320000822.5a052ce":{"name":"remoteclaw","version":"0.1.0-next.20260320000822.5a052ce","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260320000822.5a052ce","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"5ffabf90431a6f27511968de4ced776fe0a3e0e0","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260320000822.5a052ce.tgz","fileCount":2434,"integrity":"sha512-Wk4XmmEXSL7hyuOCi/OoE9RoVkXFUVphscGUpmpiABVKiHvnxPJbLmm5IwD63EXZspRyBTqepw3ZcaDD8ZCOMA==","signatures":[{"sig":"MEUCIFjXToSYzw1KiOfF2plINqp6I1kcmT/7Ws1TgsY8WpeDAiEAmszT7Ni8STB7jTOMDr/AiEsxkCy8jU6Dbseyio0YIwI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260320000822.5a052ce","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":31345644},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"5a052ce17432c53f34b0ba71c768a7f91e50c586","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260320000822.5a052ce_1773965335955_0.5548886703965401","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260320011904.0fc2280":{"name":"remoteclaw","version":"0.1.0-next.20260320011904.0fc2280","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260320011904.0fc2280","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"33753bb2e7ec6842cb7ac2fcb1aa81a95116508e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260320011904.0fc2280.tgz","fileCount":2434,"integrity":"sha512-lWcfVtfRMJ/Ygy5Z03z7dvfaJL4yvmrQhvpe0kIHs8HRrKv8dNXoTMfR6gepdvr9wQ9C0bHprlIeDbWh51wpEA==","signatures":[{"sig":"MEUCIBQk8C8ZyzL8s+Z8QQ3PKsuYa3SwWY/ME1IoYiYtFr5RAiEAmA7lPMNJ3T1jqMqJKb2J8PjNya2VX/9ZyZcQ1iIEiAQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260320011904.0fc2280","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":31353381},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"0fc22808444e7fecc0959f2ebe10f0abaabd2c6c","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260320011904.0fc2280_1773969577469_0.3003458137344637","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260320014650.e409f12":{"name":"remoteclaw","version":"0.1.0-next.20260320014650.e409f12","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260320014650.e409f12","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d22bc694525adad22c7b38ba22335b7225a078cd","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260320014650.e409f12.tgz","fileCount":2441,"integrity":"sha512-xtMqO0GKLpasAX/AdXrWoOt9QVm+niSliEOj5ararO+JUs0/iDLTCVY0ZuR6Nqq+/5UnvEqwpJO5Hz5uLb85Zg==","signatures":[{"sig":"MEQCIDMEwwDzTVSW/QwfPe/EpdIarmz3s+YCXpwZe6wRFsTvAiBCflUvmMzEZ2O7q+DdRZGVK/viFvi21ncTjpnYsGK2IQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260320014650.e409f12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":31413413},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"e409f1274b2a457174d01d38bf25ba92c598cb8b","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260320014650.e409f12_1773971243279_0.9861614017314158","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260320021451.5535565":{"name":"remoteclaw","version":"0.1.0-next.20260320021451.5535565","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260320021451.5535565","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"26a52ab7a02b6e3f7503e0b1a08b32594dbbb23f","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260320021451.5535565.tgz","fileCount":2443,"integrity":"sha512-xsU7hggb/pFdOlDp55sOPheDOr8lRsODx+0bu9DbfeP06yAtvKUOWCiwAOm3jwJ45LQ7coQGdSXvIvlNvq2y/Q==","signatures":[{"sig":"MEUCIQCSKYLJRr1TNLg3e0w90tqfD+qTgNL4JseW0QJSRKOGNwIgS03fsvc5Nr2tMeRfQtxFoKt+z2G3LmlljM8xrjtr3nU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260320021451.5535565","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":31461521},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"5535565852ed169efef6e4f4b277876c590458df","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260320021451.5535565_1773972922630_0.6909929897689076","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260320073714.212ca65":{"name":"remoteclaw","version":"0.1.0-next.20260320073714.212ca65","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260320073714.212ca65","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"33a47e2436ac9f689b805c46dc54d1b757c2b309","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260320073714.212ca65.tgz","fileCount":2443,"integrity":"sha512-a/MUWCTaNdGMsWVzEAAWIAvWQj2p1MfrKzfSulE4JYAN7VcqEq4ktuBl96IaC2ETKqN5URQlMVY7U4nOw0I1/Q==","signatures":[{"sig":"MEYCIQCq/c5fY1ur45YCYrtrcxOa3FT6AKgwyc4mT7atHPDYHgIhAI1V9b5PQz2Er/D6PdQB/klMz7hdBTajmUizSCBL/0v6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260320073714.212ca65","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":31472191},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"212ca658b284a02ff41e0685880560c89cde064a","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260320073714.212ca65_1773992265705_0.010172919520453405","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260320075454.6d860b3":{"name":"remoteclaw","version":"0.1.0-next.20260320075454.6d860b3","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260320075454.6d860b3","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"caa31098b986004f145d5e8f0e89f23e56faab80","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260320075454.6d860b3.tgz","fileCount":2443,"integrity":"sha512-pwoHrEfE3hRCuaquR5PvT8267UgH+S8OMX1Giyc1OKNHxng3x7iwsvD/dTFs1S9JNVG4ehJsMpFeTZhjtCoKRA==","signatures":[{"sig":"MEQCIHcwGNpCgrXSc4J8G+1bVl7pK4NN2iyRmvvCHUC8pXvSAiBcu/jz4ASKANF7xY1iIKpX84forggxBDOwrJ3CIES+HA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260320075454.6d860b3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":31472721},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"6d860b3530ca8dd1ecae260538fe3f5c05cb95f9","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260320075454.6d860b3_1773993327387_0.5489471644972652","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260320090137.c523858":{"name":"remoteclaw","version":"0.1.0-next.20260320090137.c523858","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260320090137.c523858","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"42990ace6b80afdcbd1ab03a298e778e5e95137f","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260320090137.c523858.tgz","fileCount":2456,"integrity":"sha512-EDm9buoar5thGrTPRwj6405jgxOiSAkJhCRXI/b3FsX9amzR/GkvMYJ8lpXVMRK4KcwalGXnSFsZtxlY8yb8Iw==","signatures":[{"sig":"MEYCIQCTk5G43r2NaWTFBmmFj8VY7UEmeTbUaK13NcRT34ekogIhAK+3fNK2wBLHoQ7Yia+aGnr5acI0NMBhXMLaNLL0phxK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260320090137.c523858","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":31662479},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"c5238582e5ee62457a00d57d8f33697244010787","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260320090137.c523858_1773997330808_0.13326264395212917","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260320090900.6ae43a8":{"name":"remoteclaw","version":"0.1.0-next.20260320090900.6ae43a8","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260320090900.6ae43a8","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"33685fd79e46e6ab07a47cbbb35a8fd9ceb92fb9","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260320090900.6ae43a8.tgz","fileCount":2456,"integrity":"sha512-D2GURWSYYMvvr4oZw6WiTGG9aPVFgapaBPIzNqSY9xrLjqqzZNzOPxEfN1NVe7BgQbP6+FYYVnG9AxTI9JwmQg==","signatures":[{"sig":"MEUCIQDZAWv0XPO946LaJJbXIWooU26woc4osIYYjn047ryFEgIgePc0ogPxikRHyKAYrUuKyS9l5np60Ez6vjCkIJgPvqA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260320090900.6ae43a8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":31667951},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"6ae43a8f4b5bc98066064e22c1585bf08c95853b","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260320090900.6ae43a8_1773997772913_0.697347073159438","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260320091914.8b9c1e1":{"name":"remoteclaw","version":"0.1.0-next.20260320091914.8b9c1e1","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260320091914.8b9c1e1","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"c568b2d0019297943f75488beb54ffa4beaf363a","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260320091914.8b9c1e1.tgz","fileCount":2456,"integrity":"sha512-hzFuebAO8crCETULMiUJQXsIIsRTki63hs+E0N7/wfjEsw2//agiPCzL9szOihiwqQYi4SW4YLql5I6IlWPjHw==","signatures":[{"sig":"MEQCIBS+ExzJf5AvpCP6VefrKIrHC6ZDDWQBjntOQgcG2nX7AiA3YUGnLdjHArrKxssKVEJg7e88J3JUJBVxWzv9n22DtA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260320091914.8b9c1e1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":31662561},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"8b9c1e1e9857a07237c37a96a74b73248fe54c4e","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260320091914.8b9c1e1_1773998387506_0.10518393360069034","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260320092529.33db7cc":{"name":"remoteclaw","version":"0.1.0-next.20260320092529.33db7cc","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260320092529.33db7cc","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"70cce9033ca6c415e3559d227865bd41f83832ba","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260320092529.33db7cc.tgz","fileCount":2456,"integrity":"sha512-nTLwjkOrMQ6VeCs+NSf7KV6nNebqoNgkxAAdjuV+YYNQz3ioWf+EuY3bve4X87BENMTVmpsCZi7TofA2HYsaBw==","signatures":[{"sig":"MEUCIBOk21eI/6gD30T4ra/VxAkpx3W4NHiQc5Cp/y6ocJwCAiEAltjVh89xAVkJNqic+2ab0Mh4kW42yisDvNYcHBjnkng=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260320092529.33db7cc","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":31662878},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"33db7ccd8a66f74a52ca9b67781d39784609e35f","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260320092529.33db7cc_1773998762071_0.6839489658140092","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260320093134.8623089":{"name":"remoteclaw","version":"0.1.0-next.20260320093134.8623089","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260320093134.8623089","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"260e8674906ded5b1a32b493d398cf3264002b41","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260320093134.8623089.tgz","fileCount":2456,"integrity":"sha512-rEKHwxi+9QyWT2XzEFodMzqgcIkpsC0ZV433JtXXBurxMcJCgybhfxOskC0BuNkLXtcQvip/hvgT/ad+y9wGtA==","signatures":[{"sig":"MEUCIQCvb3ZJD30NsjQNMbDsPoC/hHc7FkAjqO3h4GvoRRWJngIgMOHW2gbYYuVhemZV0rQ9GiIppTR/iaipfuQYsm8kETk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260320093134.8623089","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":31665924},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"86230893d9bc9c457f81297186ff32cc19c5de31","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260320093134.8623089_1773999128561_0.07393652894237945","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260320094840.3c6e1ad":{"name":"remoteclaw","version":"0.1.0-next.20260320094840.3c6e1ad","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260320094840.3c6e1ad","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"977694e95df4255989196382183b57778a94a9ef","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260320094840.3c6e1ad.tgz","fileCount":2456,"integrity":"sha512-ybKPOwfr+IIRzCKQ02te+SGkaOI47uGT/uLYNLNREtyiPfmSHpuB6HWbiOJvFVAMFCIj95Ebw3pnJtPt7x+PfQ==","signatures":[{"sig":"MEYCIQDq5H9DiQupN+DK6+FFsufH/Iw7JeknisaJb9g8Ex9S9gIhAIZRvfVVDA+wSvqwPiz7WrLsVE/aUrA6FGr3mzzuo7OT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260320094840.3c6e1ad","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":31668615},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"3c6e1ad9f30656fff03e988973f63b5df9fc5685","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260320094840.3c6e1ad_1774000153751_0.7126613113505722","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260320104228.d4e2f5b":{"name":"remoteclaw","version":"0.1.0-next.20260320104228.d4e2f5b","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260320104228.d4e2f5b","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"fd1f961e63e73abf4a09667abef8eef67eec4db1","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260320104228.d4e2f5b.tgz","fileCount":2456,"integrity":"sha512-iGh17loZK4RR5QnhRROVFi/SWktjDAbN33BByYyCZfSQMV+gYiAXWhbRONZ6Q6wq79y5sl1XtPohQs9wJOCO4A==","signatures":[{"sig":"MEQCIBi0DF+Tnzk2sev04XT5rTjl3FmfUpqgbxo4T+1PE4wFAiBTUZkfy3uq2SYD1RnsqgFSWKcRvdG9XISTooAIhZp3Yg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260320104228.d4e2f5b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":31672981},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"d4e2f5bde903281f272902383129619a8a590a79","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260320104228.d4e2f5b_1774003381770_0.2704277588932167","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260320112551.269b748":{"name":"remoteclaw","version":"0.1.0-next.20260320112551.269b748","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260320112551.269b748","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"88197297d0381d1fc48a7d508f28535acf0e0e20","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260320112551.269b748.tgz","fileCount":2460,"integrity":"sha512-2NBLEWtdEOF2Dniz8FfRcMUe3NGAEeZ472tAZ86bLrjFWuGfKqpIJXGd9Uajx8RJ5kPF7Br/oWN+BrRK/CHbpA==","signatures":[{"sig":"MEUCIEyyrMgeyxi98pdHjTPjp2Vh6osRrpxJ/w1c2XmjsPA1AiEAys6yCD1eklfZ6uWSYpPl/01GKYjhUDSUNnUR6R2wyu8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260320112551.269b748","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":31697330},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"269b74856ed581a95cbe3b04518fc206758c95a8","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260320112551.269b748_1774005986212_0.13900377881609005","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260320113341.ac9b66e":{"name":"remoteclaw","version":"0.1.0-next.20260320113341.ac9b66e","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260320113341.ac9b66e","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"a8577128d9e40b5d982212fe1180c2aa7c620ad1","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260320113341.ac9b66e.tgz","fileCount":2460,"integrity":"sha512-YFNCrCCiVx6unzXn6HDaHMhGCl+FExKzcv2g6tEPKT2fHFETsNx+W3kKgDDr+2LijLY/kYXw3JEHIdMlyDtAdQ==","signatures":[{"sig":"MEUCIAW/QeCKJxB6LfJjF0l0KJsbLopK1a5OWH8y/Rr9LrJbAiEA2qWMZiKQC9il8XxEfeOYTOsuWRQ5nP6XfXfT4AG39j0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260320113341.ac9b66e","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":31705228},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"ac9b66ef7ce853e14f5cbac7f9fd799f02e47cc3","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260320113341.ac9b66e_1774006455398_0.9857962219855751","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260320120401.3cceb96":{"name":"remoteclaw","version":"0.1.0-next.20260320120401.3cceb96","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260320120401.3cceb96","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"db5baec4f2a00f2995a2deae412607c886e63bf0","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260320120401.3cceb96.tgz","fileCount":2460,"integrity":"sha512-OtrlD6PLRjRobJ3jAhtAxoDY+umZDBmwJvdYhDgNKqxNMqPX4tlcIbaTiCqS2t4Z05MSXK5I5PGTxChQQTobCA==","signatures":[{"sig":"MEQCIGhTFCNKc7Hp8exXpG0q6P9IwnLdFB3CHRJ3LAv1jE3/AiBYyDnfNw7ELbJWEpsgB0wyeMZoeNbCdBi9zKSIGnXRgg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260320120401.3cceb96","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":31775360},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"3cceb96cbf47b56e06ad0676b98d733b4cc9011e","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260320120401.3cceb96_1774008276092_0.003311981685967913","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260320125828.b9505f1":{"name":"remoteclaw","version":"0.1.0-next.20260320125828.b9505f1","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260320125828.b9505f1","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d72ecd9b7bd399b6ade373c03d951cd1bbee77a3","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260320125828.b9505f1.tgz","fileCount":2460,"integrity":"sha512-ci25np7tr2+NeqaQTnh0lpB1H2sxRvjt2QfEB0s4ZuoHZKFix8HVjSFwBqikNFTGRfl46P+C/prIJ04Jw59vkQ==","signatures":[{"sig":"MEUCICxg1YuiRSLGJvGCTwElqH+ys77tUystuyCGW47w7y2mAiEA3Y3hGIjUAUnYqnimh4SVIgID4k3k6ydPBmsF20uiDUY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260320125828.b9505f1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":31775548},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"b9505f1604df068b2e40f06831795bfee3d82e6d","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260320125828.b9505f1_1774011542239_0.9561981720604464","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260320133503.5aaffc9":{"name":"remoteclaw","version":"0.1.0-next.20260320133503.5aaffc9","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260320133503.5aaffc9","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"23a484f552c0099ce94e85b6249c7ce0a6c584d9","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260320133503.5aaffc9.tgz","fileCount":2460,"integrity":"sha512-uz5NG3CcMUL8Bg5U/u19NlTcmzbRqPAnV9tngv10aWK8DqnYZ9JVbPxSgLnA35og3SEoJ1JdJSfjYWuJJIHhEQ==","signatures":[{"sig":"MEYCIQDxPCWfJi/O6hkO/sP38JK2OGf3EiQOjeRjB2kTRFNp/gIhAKr7gUxLyLuEQZr+2jCmIiXngYtNqa//oiyQNwVGvX88","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260320133503.5aaffc9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":31792347},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"5aaffc9d409ef52440cbf3c65e86909cba5f5d9a","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260320133503.5aaffc9_1774013737349_0.19260003159185657","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260320134636.2863bf8":{"name":"remoteclaw","version":"0.1.0-next.20260320134636.2863bf8","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260320134636.2863bf8","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"709b76e38a489ac89a692844b65168450622ccdc","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260320134636.2863bf8.tgz","fileCount":2460,"integrity":"sha512-3/vlVsO66fvfvD1YQxOH0SamDebRp8t/boiIPreZ2Ybypby7rYyRO1ANVRpTwFsHe/1BVz2L9xkIDnE+K2Wwmw==","signatures":[{"sig":"MEUCIQDOe7WsCihdMsq5q4OtpiHFc0rYr36F4DBL7nWELX2bSAIgGhISexf8YgRkJ+xVoHmtCEicfnCUAF4iNT/Fzu03R1k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260320134636.2863bf8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":31800549},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"2863bf805ebab5b0e554d21f4b64f350354e295a","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260320134636.2863bf8_1774014428861_0.3948952834260151","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260320151444.3fce1ce":{"name":"remoteclaw","version":"0.1.0-next.20260320151444.3fce1ce","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260320151444.3fce1ce","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"4689994c141979f617bd1c2998fe253e4962629d","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260320151444.3fce1ce.tgz","fileCount":2460,"integrity":"sha512-Wj39T8Trau257BuI8ea2mwji78zKhV6aGjQycKbSa4vtu+zyUoBvwEQr+0F+AZvvWADTqL5NIXlqqVtDomd9Eg==","signatures":[{"sig":"MEYCIQDEA+gwCvd0Wu/GclwUWMZDvF2Uy38gO9gIg5K0PtiC3wIhAO+oRcOrC7zYWxWK5qYrx9GmzZ+/zGnzafl4IdpQYD/w","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260320151444.3fce1ce","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":31832111},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"3fce1ceeb3e8cfcb9c581baf512152bf44708e37","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260320151444.3fce1ce_1774019715862_0.8311904597597841","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260320152222.0399e6b":{"name":"remoteclaw","version":"0.1.0-next.20260320152222.0399e6b","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260320152222.0399e6b","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"6c70e2bbaffe0f3bc7738e3ad098acb030157109","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260320152222.0399e6b.tgz","fileCount":2460,"integrity":"sha512-0VTdZvgqyk3VHgVirSG97msw9WsRBeuHnvuxiNlkP0XL98Y4yrfQjVmdsTSltdpq+M9Lt0H9b2mbwF8Q1d0beQ==","signatures":[{"sig":"MEUCIE6a/+BROIotMdRQXRkBT9ykKAlL1v1bLGJwLkiByXI7AiEAt6svHvuwDvUdldRIGr28EUFQ5QlK2zhk9HfATgMys7k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260320152222.0399e6b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":31829273},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"0399e6b0bf59802d15ab554cc7cf01fa46649330","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260320152222.0399e6b_1774020175609_0.7244244400242763","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260320153001.27c38c9":{"name":"remoteclaw","version":"0.1.0-next.20260320153001.27c38c9","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260320153001.27c38c9","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"72400debfefa84b4d43c6232266095db7153bfb0","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260320153001.27c38c9.tgz","fileCount":2460,"integrity":"sha512-vvWIb1EHc7WnT7orGqNUrJm4hZ2mVcTu5PEHkkZoYRSzsqy4tKkL+l+uAhLweMND1cK/1Zmop0THaPpPyt7wQg==","signatures":[{"sig":"MEYCIQCgvsuUCAP5FKSsGeL+ANgGSwN8acdOjcNXmn+m9oXUAgIhAMTBvGrg6E7XpoKFiPN8PnQgWz/gEkNEMXoeP8aM7V5T","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260320153001.27c38c9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":31829817},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"27c38c9e20e0f8e36c32073a4ba3cead15eb9c9d","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260320153001.27c38c9_1774020634662_0.41440327974953295","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260320153640.d764993":{"name":"remoteclaw","version":"0.1.0-next.20260320153640.d764993","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260320153640.d764993","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"00a5a4f946c1d27d3b6b8f41c7b3e91ca24cdcea","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260320153640.d764993.tgz","fileCount":2460,"integrity":"sha512-+7IUqIlL3299x09AvqGyDYKkJC1aNEifuampEmS00Fuv2lOnOllUMQMusyxIgTKAFX3TXu9VP9H6yH3/HK+hKg==","signatures":[{"sig":"MEYCIQD3WAGlXOL0CWdalJvqARaVNsR2QtzGC9ydCEgAiq2OPQIhAL40pux3gD9h4R6j1+Q2Icn3SzBVTvrCUJvtFNHbG6lG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260320153640.d764993","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":31830689},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"d764993b3fad5520af37789694c7e5a22f8d087e","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260320153640.d764993_1774021031048_0.5744400650097037","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260320160654.13fcb8a":{"name":"remoteclaw","version":"0.1.0-next.20260320160654.13fcb8a","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260320160654.13fcb8a","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"5eb52259c5a476ecbd8e38d7f656ef68093a9f97","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260320160654.13fcb8a.tgz","fileCount":2465,"integrity":"sha512-47xkBW6HH1tPe6q45Q4XREcndphofpWF0wDicly5xvkfug3+ehAv06uBk3BdR7rKuv1gzQ0CIwswXURQuJSTWw==","signatures":[{"sig":"MEQCIDFnDW/UhxNchoRvF3JhwF9ivj6P5kEwKLvKm9T5H5PKAiBJBhyGDZlDMdUQ4ssDx2drI8AXZaP72qkdvaqLu+mcnw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260320160654.13fcb8a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":31852073},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"13fcb8a00f50eacc6982b6c8b6f52cf89e37c58a","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260320160654.13fcb8a_1774022847702_0.8215344426232978","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260320164148.2893735":{"name":"remoteclaw","version":"0.1.0-next.20260320164148.2893735","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260320164148.2893735","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e374b6d939058cbc2132b04cd5533e726dba1e29","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260320164148.2893735.tgz","fileCount":2465,"integrity":"sha512-lrP3smfxuXVj/Vrejj+Rm23kpBSGN31fMOQnKtHfHpmEx3gu7g7x4w1Z+hcZD3qJnwPVHbA+7bGwtaqTct+sOQ==","signatures":[{"sig":"MEUCIQDxyrRLJYsVqCuw6yOiuy3OFBLG0km4N5Ae3QAKxZ0p7QIgFwLRt35y2GY9qkHTksamkFWxAHO00NDBZVQrrgCvAQ8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260320164148.2893735","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":31855386},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"28937356fa2bbed920f6cc9267cf93081e3f07ba","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260320164148.2893735_1774024942263_0.38760918406782796","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260320170434.6fb02a5":{"name":"remoteclaw","version":"0.1.0-next.20260320170434.6fb02a5","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260320170434.6fb02a5","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"948dbe5cf7665655f838d6fb1cc44716b88ebae6","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260320170434.6fb02a5.tgz","fileCount":2465,"integrity":"sha512-fd3NUkQOcZVfhRNO3YoWRyPmjZ2fWbpjefx1s00BSgzXPHZAvWPgNOtEwKvzGAYpYLFxmhQ5RWR3pJJgYRkt4w==","signatures":[{"sig":"MEUCIFXijUE/qtvk1OuqCfaukhnd5XuwktlmZxoird6zNB/FAiEAuHMykB0RWAPRQkSDTjQDSytIwwrodJ+wWHE5Q4XUt8I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260320170434.6fb02a5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":31855373},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"6fb02a550b1311129441812a9e7d80c687355733","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260320170434.6fb02a5_1774026309245_0.25166876686946327","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260320180141.01a5a17":{"name":"remoteclaw","version":"0.1.0-next.20260320180141.01a5a17","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260320180141.01a5a17","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d6be5dc6a7c84d6691202b102fa2963ea75f0bea","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260320180141.01a5a17.tgz","fileCount":2494,"integrity":"sha512-LGtQE0br6bqZwWdCt/0IY4d6xdNE9bTeT5l018hDZQebzM8ANQCRx6CKV1H7VvkHiSDhHpUAZxuqunM+GtU7pA==","signatures":[{"sig":"MEUCIFn6lakAMYLAsIbv1MDEQT4Cux+rXCHTWV3px5e5a4PDAiEAvCHUrwLw7HJtwEFYcUTP2EDv7PBkP7K7J6O8L0UEq0A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260320180141.01a5a17","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36260177},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"01a5a176b85a634295732e262b036f8c62e99980","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260320180141.01a5a17_1774029739204_0.34892126757966957","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260320190459.a4c825a":{"name":"remoteclaw","version":"0.1.0-next.20260320190459.a4c825a","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260320190459.a4c825a","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"4ef1825ed784a5dd7686d2743bc9fe625f64e323","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260320190459.a4c825a.tgz","fileCount":2506,"integrity":"sha512-J5opu8xjt5PNo/1m9aAjyKqJas/Q/caKcGVvbHDwvxpCw97sN80vV4nQhn9XIJnqIhQBVqvLwTlF5igOhOUq1Q==","signatures":[{"sig":"MEYCIQDHnusEyTF4Dgq9NwdHRzw1wjBSvxPAvjV+i3uDGdxnCQIhAOM/WczfH+MNEYzeIlwVqZFavFdmolzLvnkDfsDkMCBz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260320190459.a4c825a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37266607},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"a4c825a8a7a6ee2d745b92db6950e5fdaa2cbefc","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260320190459.a4c825a_1774033534274_0.21648143590454616","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260320193451.56b9e1c":{"name":"remoteclaw","version":"0.1.0-next.20260320193451.56b9e1c","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260320193451.56b9e1c","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"28b0c9897f8d28b038f512f3579e424f682f947c","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260320193451.56b9e1c.tgz","fileCount":2506,"integrity":"sha512-/cXRgFhOxwLRRbheeyBMXW6hx9lu1uBG3S37+6r1jsj2avepIsh+m3hNQxVl6VYfGGJEfECPOWh209C/HmHEQQ==","signatures":[{"sig":"MEUCIC7msT3HzJzd48A6kugqynuP0ZIH7gepspWARdFoc5gxAiEApZb1dTZ5xHIc3dJgXUW0z2hAhcdQaLAZlYpoG08lP1g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260320193451.56b9e1c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37271983},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"56b9e1c52afea3ea3f95db5b46214f9da9d8fc35","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260320193451.56b9e1c_1774035325506_0.19953555671728496","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260320195610.ec9d4cd":{"name":"remoteclaw","version":"0.1.0-next.20260320195610.ec9d4cd","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260320195610.ec9d4cd","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"6540f4ace723e0d87d51f14079570cf7818e9d2c","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260320195610.ec9d4cd.tgz","fileCount":2507,"integrity":"sha512-WuktLPU7cohUnpNXv9mhoI3v54jU/CJgVr88Z6qVLmrkgG1o5Spv70xDYRnexg6VLTmxCpr/PYn6BWH6K9pqWQ==","signatures":[{"sig":"MEYCIQCZpHxxlCSiNKNAIQLiHJXaCe1Myrhcuh//O6tpjSro7gIhAKIdyag/e487Ddlx6efKcbfJSXZSskXNRth6WlEFaT4Q","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260320195610.ec9d4cd","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37276175},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"ec9d4cdb2aebc2d0feb2e7cd9f9c0dd3f1807f23","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260320195610.ec9d4cd_1774036605778_0.9122944793961365","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260320203011.b243d90":{"name":"remoteclaw","version":"0.1.0-next.20260320203011.b243d90","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260320203011.b243d90","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"df0c6eb3bdf5b2421b35a50c06e0eb704bce330b","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260320203011.b243d90.tgz","fileCount":2507,"integrity":"sha512-z9FP5ZVWZYGavMmYufIgx96vj9y8OFwkkrKhQTroSCzVGpghGoiWGtVpjkGUQ7SFERPj84vqAjjzZUZt398xag==","signatures":[{"sig":"MEUCIQCUD9w2EgRcIKBTkUSnovGYstt44lmxTR7eCQBaYnVBewIgLWm/r8VUjTTjb5gAFMdRPP/GlYA0zoUEfQ8rEfzajPQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260320203011.b243d90","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37279982},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"b243d90373b364199aa9abb644f42fcf6dc44c9c","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260320203011.b243d90_1774038647197_0.6182823990618107","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260320204051.b4b0576":{"name":"remoteclaw","version":"0.1.0-next.20260320204051.b4b0576","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260320204051.b4b0576","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"ebe55046e9f5351237f1f8af8c98adef2304d899","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260320204051.b4b0576.tgz","fileCount":2503,"integrity":"sha512-tOkx2zYJeuRbIrmCG/PLCJFjtnC8OAzSqYiZlavP+H047peypG99qBFugA/k2oxmtDsv/PIu+kyNxzDSn7YEJg==","signatures":[{"sig":"MEUCIFnIVkeXS7Su/Bg2LlwxEM9PdtDjekxfXeORgJwZrqqXAiEAulEoygJdUBnz/wX8W/3Ux/I7YH84b8Cp+JH7B4O4qow=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260320204051.b4b0576","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36315513},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"b4b05765651d6419a2574472b828e47ba22c4f40","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260320204051.b4b0576_1774039285631_0.9358332677495795","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260320205026.f7c4622":{"name":"remoteclaw","version":"0.1.0-next.20260320205026.f7c4622","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260320205026.f7c4622","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"a2d3a95201169927916637b87000645d7c248b03","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260320205026.f7c4622.tgz","fileCount":2503,"integrity":"sha512-QG5Sb+GeWn9bx9mXfEEJ4hcW0AOsWxyhJMOo0zh7fiw7a7gmT/QSqPCOsmA6JRSJVTPXnsyxtBkAq/qyxSp5Dw==","signatures":[{"sig":"MEUCIBrhOtEgMv4MqsGmnfC8yLcBIundOkH9G/itTPi73oo8AiEA5k1vdEOi+Gy1hTjnviezYJgJ/NL49p79/zuaQVipiqM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260320205026.f7c4622","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36315753},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"f7c46223766dad2572679c9c7e8a81233c085175","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260320205026.f7c4622_1774039859281_0.8582178827954487","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260320213644.b600a4e":{"name":"remoteclaw","version":"0.1.0-next.20260320213644.b600a4e","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260320213644.b600a4e","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"9ae944214b6be032da96d4636c02588d0d84ff61","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260320213644.b600a4e.tgz","fileCount":2503,"integrity":"sha512-abDkbxlkTc9UH/iR2Tiusrj4PeASzn9pIZcHkPiaFU9yLg/Mzg5qB0HUwmb42Clyo+t87m6a3DiUUizm5Ciakg==","signatures":[{"sig":"MEUCID/PjLajH1DZ73kxEN5Z/1w1HApAPePtsWpin/QrQQYWAiEAhIgCD4/MaSx8Lvl3EJruZLk4lMtju/hFdAY/gYuRPN8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260320213644.b600a4e","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36315983},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"b600a4eaf832778268e23e51f93fdf7edabcb805","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260320213644.b600a4e_1774042639250_0.01746518198147906","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260320234608.eb8f1c2":{"name":"remoteclaw","version":"0.1.0-next.20260320234608.eb8f1c2","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260320234608.eb8f1c2","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"6a7ba20ed04143bb4356915ad81fb353cb8d5eb9","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260320234608.eb8f1c2.tgz","fileCount":2503,"integrity":"sha512-vEI1J8KLBZ9yqnkXrroz/eqoOf38aOzKiINIsZxrcFJSh9goBNfA5PLOZOj+V2KsQQAL79jcQYhZO/cCH/LItw==","signatures":[{"sig":"MEYCIQCpZ8T8hfB2RzC9636E2xRpTePmLgc0Mg3djliBaB/tgQIhAKXWwjmzJaLx7Zz4Axf9xQKTnxGtX+NPHDpvhlIy7R1G","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260320234608.eb8f1c2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36321950},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"eb8f1c20b3df1591b5e52e25d72bdf7808178ca5","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260320234608.eb8f1c2_1774050402528_0.6999492861086758","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260321002814.4318ca0":{"name":"remoteclaw","version":"0.1.0-next.20260321002814.4318ca0","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260321002814.4318ca0","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d2c0835c569fa4e4cf344b9cd7371ab2d2b0ea48","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260321002814.4318ca0.tgz","fileCount":2508,"integrity":"sha512-HikoLrc40WvPwAcfCUrh/OD43bZTUMQx/V4oh9K0nluqOtA5ujweL4wMx4oLNjAENInq8V5Xr6Ji8JEABSlxBA==","signatures":[{"sig":"MEUCIQDAwxh85yHmlhjdURzZhMbtBsy6xBoBfBuoZd07KRGFAQIgIg/8MkVxZAOBimEz5uIoKShBnMJCEBWBrlNfQI7RH10=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260321002814.4318ca0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37285347},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"4318ca0f32b5d4afedfc49f0d4dbb5f811969e6b","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260321002814.4318ca0_1774052926765_0.5255996247794121","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260321012531.d95299d":{"name":"remoteclaw","version":"0.1.0-next.20260321012531.d95299d","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260321012531.d95299d","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"0cf10346c2c0b06c79dc7d1fe6d43a7231afbc36","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260321012531.d95299d.tgz","fileCount":2508,"integrity":"sha512-gn8VLk402GwnYLB+o02RWzyrSQjLTRFHOc9orrihSBK8Ux045UtR/lMrDBKN2+/07PzA0w3Dx7T3VGdhjjvB4w==","signatures":[{"sig":"MEUCIQCBonRIyiGLho91R7assiWshQr34O4rycuARkDydnzhEQIge2kH/a1DkuPhmDS1fKXDAX9J27KANjt/E7EcMbmZ/uw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260321012531.d95299d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37331345},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"d95299d337cc355cdc616d878b3d9bcca053b2e5","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260321012531.d95299d_1774056365870_0.6649620472248958","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260321021600.6c09c37":{"name":"remoteclaw","version":"0.1.0-next.20260321021600.6c09c37","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260321021600.6c09c37","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"9fe0a71471554536a18d847e88aff028d1e62c0b","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260321021600.6c09c37.tgz","fileCount":2504,"integrity":"sha512-QNB8N6SI+rv0kABghM9t1LEzXEHvNJ2bX5RJ1VIM2jqNKF2xZmu83mCglF/JKWD+f92ke0C3SZEAE2T7KE/FHA==","signatures":[{"sig":"MEQCICeg11l6C6GfJTdBNgEBoMhhU6qR+h1r6NNZDHeC3DqrAiAsxdLn7VKwxU3uxvtg8nxPpMuHrSCMU/oQcYANBeSWBA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260321021600.6c09c37","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36366081},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"6c09c375019b712b9c6decb682847c4ec3afa728","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260321021600.6c09c37_1774059394202_0.24047005372188668","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260321055112.fb8d296":{"name":"remoteclaw","version":"0.1.0-next.20260321055112.fb8d296","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260321055112.fb8d296","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"5e1e56c97da3a02a037746ceed18303b55c91b34","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260321055112.fb8d296.tgz","fileCount":2508,"integrity":"sha512-c8ln5Hnlm6nKWIOLQk3Z4fTxfIcgjlSZAUSR17aYz1TkckA/8BybQUE45IqcWOjZP0efN2zlWeN7KYNEJfkc8g==","signatures":[{"sig":"MEUCIEfMZBe19862uI/J7UYgya1dv8W5/dm1Ih6xZRxYWjzKAiEAn9sUvwCFSgMrzYOKByE8T1RLCjCFxF5KIRJRjQ895+Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260321055112.fb8d296","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37331275},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"fb8d2961c964881fcce745a7b8613748e9b58b4c","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260321055112.fb8d296_1774072306813_0.6466409237540138","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260321061012.e2ac520":{"name":"remoteclaw","version":"0.1.0-next.20260321061012.e2ac520","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260321061012.e2ac520","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e795196d77a268675f401659719d22f1d654a9c4","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260321061012.e2ac520.tgz","fileCount":2508,"integrity":"sha512-Nl5iB9IugKowobpggpGXyVEUq3smVKCDd41EA/tbhld4kvHD0OQmmIignnLXu1bxF+JOEPTGJPx0S/ByJihBFA==","signatures":[{"sig":"MEYCIQCbHZTiAhHMGc2UpkKXq2XITAZFvKtG0oyRMzUpAV+PigIhAMTCOBidaBwAS+JFhfnqdsBftq+OWyrfJFB4WnfqhEYL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260321061012.e2ac520","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37331996},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"e2ac5200e96908afe39ba638ae0d856b0ee326ea","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260321061012.e2ac520_1774073446617_0.6716018061126483","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260321063258.da5e5e3":{"name":"remoteclaw","version":"0.1.0-next.20260321063258.da5e5e3","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260321063258.da5e5e3","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"98c57ac42cece327c9259399cd2a22e475856a85","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260321063258.da5e5e3.tgz","fileCount":2504,"integrity":"sha512-eDOtr1QPdlpqgqDxmQA06Dyf/SROobBiOIJFxjxtSkGI7TwyNlVsCDpCCK0MysIQ0Td2CR1+mBfF3I122eWZOw==","signatures":[{"sig":"MEQCIG1z0/whWJdugLiL7aZTzvM9WjlvYVXx+8hO2jSwOZNYAiA77ISba89uZ3F3KsQW3lnXAGBfLL2q83KVwZMyHLbjxQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260321063258.da5e5e3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36368507},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"da5e5e3ddf7ed67e8621459403bb914a958c9a55","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260321063258.da5e5e3_1774074812534_0.8697833068013179","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260321064747.d412e03":{"name":"remoteclaw","version":"0.1.0-next.20260321064747.d412e03","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260321064747.d412e03","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"934807fd4d2d7528dbfd000a8b2b7238ef35a167","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260321064747.d412e03.tgz","fileCount":2504,"integrity":"sha512-+r5pWR1kBO0ZoxG03KmBr1XPxwRfi6JkK77AXwyCPzJPRCnbX1g8ppyY6IwqfQsR5Y0h8yaLIQccKd2YR33R2w==","signatures":[{"sig":"MEUCIAswrWqJbCoYM7jVLYI2/aorg9z7AHLt+qjHnV/CMplNAiEAzORT1MuzpE6YdxHtVxuva4zWcp7xn/0gXBcXs030A0M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260321064747.d412e03","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36368796},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"d412e03cbd6f808f964e5d9c14f9046eca586dfe","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260321064747.d412e03_1774075701782_0.013733352637850249","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260321065616.8d1dd1d":{"name":"remoteclaw","version":"0.1.0-next.20260321065616.8d1dd1d","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260321065616.8d1dd1d","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"4aa67ce6f67cce0abbfa8035042a1cd36be8002d","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260321065616.8d1dd1d.tgz","fileCount":2508,"integrity":"sha512-B597joiLc6bcWgQCMoqBXFdwYTCQuOhacQyA7+ervBhZ3JVbQaint4e7YHeL7q1GXjFODwi7JUI0A8RwHsTspQ==","signatures":[{"sig":"MEYCIQDYAzmGZ9CWNznWrnoyEf9d5kUc2oFPUhLe4Vziolz0OgIhANLSGI5v1rCBPJXpwPIwZTx7kxs7NadunIw0NtqEHSMA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260321065616.8d1dd1d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37331962},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"8d1dd1d6460bd611aecbe926c4d176bc96d0ab6b","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260321065616.8d1dd1d_1774076210148_0.2906199792778954","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260321071502.929581b":{"name":"remoteclaw","version":"0.1.0-next.20260321071502.929581b","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260321071502.929581b","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"c98f4b0cb90a415182193a6190b8b0ef3a6a3ddf","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260321071502.929581b.tgz","fileCount":2509,"integrity":"sha512-l+2WtpdWJXeIBdfENq0uDWsWmpLCVkTd2J3TJAbAIwTxpLxazhwpox6l4rTOpt+OvoGYzHyQ++MM0ig651tB6w==","signatures":[{"sig":"MEUCICaziqlDfs+xdM3AZ8pIBH6y7wFhgsLYVIborjGURZlDAiEAn0KsvEfcYa5UhsbDoIStKL57XwiCxFTAqDzCoSSl0g8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260321071502.929581b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37341804},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"929581b904964ec5a590901c654a6c943a42b369","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260321071502.929581b_1774077335924_0.037578214933996934","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260321072650.2f3005d":{"name":"remoteclaw","version":"0.1.0-next.20260321072650.2f3005d","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260321072650.2f3005d","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"378be138f1fc390d2db7e2373fabf8366ee46e5c","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260321072650.2f3005d.tgz","fileCount":2509,"integrity":"sha512-uAOzWMZQCi6LzwrJTRwBeOwIAIetyYqGNCWKl3g0ZBB/ggTsLKOZiIwGXLOMpAMEmhkplaeX6aIfqfQycQSmPw==","signatures":[{"sig":"MEUCIQDz17Ttl4JW820l2C7rxgJcU0/No71t9QgWDHePzqNpAAIgai4xmZ3EZEN8zPz9CbLfpS8zuO0uZYJSdPFysZ7S4tE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260321072650.2f3005d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37341800},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"2f3005d8982138e6a51cf62495d133a18db00613","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260321072650.2f3005d_1774078044933_0.1519560555344035","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260321074410.0d05c3b":{"name":"remoteclaw","version":"0.1.0-next.20260321074410.0d05c3b","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260321074410.0d05c3b","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"ee51db30e1fb4ac1686a6f7194c763d017a88801","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260321074410.0d05c3b.tgz","fileCount":2504,"integrity":"sha512-Gh0OEA7+AQL8wKHZmGD3GFQO4Go9wFWd6OHKACfiXAIIC1HNggCy+jaHD8xiRBa5PiK9b1ernVvtPLHxOCrwFg==","signatures":[{"sig":"MEUCIDWS8L/66sh1Y7TF3ArZ74sIkrpgUTIy6PaKvcUI6TCWAiEA4C+qtNayswAMCU3LKQmxStUyTMrW1vKGD/FsjdPmMsU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260321074410.0d05c3b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36375261},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"0d05c3b3ff05c48630897283a75ea2b307175106","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260321074410.0d05c3b_1774079084504_0.4156016978252619","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260321103328.6eac270":{"name":"remoteclaw","version":"0.1.0-next.20260321103328.6eac270","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260321103328.6eac270","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"cc39a231eaa0f8d9aaadd7d545a2cae682c3ee32","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260321103328.6eac270.tgz","fileCount":2511,"integrity":"sha512-fEQVKrjGSjBsNU6f2Y6syIQj1GJil9AlIXcznlmDfOLUtXF8+eyFHGb3R7HOZruvryUGiPqZqQdN3HwAY5CRVg==","signatures":[{"sig":"MEYCIQD00BnbqPMUTaro/IEYYD98jkTPSz0WeGcXesZjihPMVQIhAL1ixkWVgr7e4mX1MtybPOHdoVkqe6JDsFME0zdCX5XZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260321103328.6eac270","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37368000},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"6eac2703da3d465d710d2ed8af1d2810ba550fbb","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260321103328.6eac270_1774089244270_0.809001765686105","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260321133444.ff96657":{"name":"remoteclaw","version":"0.1.0-next.20260321133444.ff96657","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260321133444.ff96657","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"139f9a911a4c5d81a14206acf43cfe999decfeff","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260321133444.ff96657.tgz","fileCount":2515,"integrity":"sha512-OOq3YbCy+QYf/ycXgEfReGh9J3fJd8bZawBNOQRmxiPAQj8D6nJGadOUJvn8JPX437EDiRDR/jQLm00y9nZhhg==","signatures":[{"sig":"MEUCIFNm7sJIK7HbaaifmIOq/8whrlSNXol0vX9Nw9vsy0/YAiEA+/qXhgGmijFFqv5X8mh4Dni5gOJhdVyFC+yhUmmUWp8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260321133444.ff96657","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37491062},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"ff966572de8570398587fef6b8930d039f767afb","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260321133444.ff96657_1774100117664_0.10501650840357946","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260321201436.28f8065":{"name":"remoteclaw","version":"0.1.0-next.20260321201436.28f8065","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260321201436.28f8065","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"1dbf08d871c06b631b9d78b4aa0a81102879233f","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260321201436.28f8065.tgz","fileCount":2516,"integrity":"sha512-rdmM7QLlyene6ZQZhCwWpRqDTGB1OSVQgX4riL3cmzCWun1RvEHDr21bOWQYILuJEYmIB7gz44zeRU5hLJfEZA==","signatures":[{"sig":"MEYCIQCZQHAPwjL3QjFWm1RPhkxYKDKdcrT1OCjVY7IgbvtBRQIhAKrNd1/DEtpI/h9lCTJNehynffBMhxVEsdsWqaE5aesC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260321201436.28f8065","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37573730},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"28f806503f5b924e3332a9abb5290c0797372166","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260321201436.28f8065_1774124110341_0.21942905594350237","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260321205044.bfa0d39":{"name":"remoteclaw","version":"0.1.0-next.20260321205044.bfa0d39","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260321205044.bfa0d39","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"273fb1f920ec1cf6d8ab37ae5d737f217c4a6028","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260321205044.bfa0d39.tgz","fileCount":2517,"integrity":"sha512-lRt1ZKyvpj9sc9jz48eFDHGG/tio56Iell756qdzmSdowU8JeI5zzLysuEDuM0OsZbSW0XMaaJhowtP/RiW/sQ==","signatures":[{"sig":"MEYCIQD+UDcnGmUpX6MbCSo0S64V4/cLZ+2E2PLoAJw7/XfePQIhAME7FLCtiSGlKcZp+TNWYRpHG975ZJn4A+1qRMRAwRiI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260321205044.bfa0d39","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37586945},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"bfa0d39477fef225ff91b9d0a6c4e0b5879386b5","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260321205044.bfa0d39_1774126277083_0.3319140792902402","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260321211031.58967ba":{"name":"remoteclaw","version":"0.1.0-next.20260321211031.58967ba","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260321211031.58967ba","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"43c5b906194e49ceb78c491aff69b54837f66259","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260321211031.58967ba.tgz","fileCount":2512,"integrity":"sha512-E3IdHQ4AwDs4QhR5G+bmI7tX5i3kiDJCqYKmlstUUVmn3js2+npuLAdNk4wvB+b5ueu/OgAGdZs2KXtxRzqhfg==","signatures":[{"sig":"MEUCIQDjSG7BYhD4eDdgIAtCuf/x8oEJhpgSeqSOaSylI1fv6AIgTcFHmEdO66aNj5e+cS2JpTPBZP1XTn7Pug4ciYpa1lY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260321211031.58967ba","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36614238},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"58967ba41ef0add299d0f04c4afa9f1996995834","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260321211031.58967ba_1774127465136_0.25368951606267154","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260321213503.a0b7272":{"name":"remoteclaw","version":"0.1.0-next.20260321213503.a0b7272","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260321213503.a0b7272","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"b20d549c8b44cec945c02a18deddff209c16bcbe","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260321213503.a0b7272.tgz","fileCount":2518,"integrity":"sha512-+Nuh46JDcf5d7DSTfSSq8cZKuHC0q5rYtEcShRnJJJMJvIzOS0VIIGTC8hXeSkZ/Yw+OdksEij9JTTKeJLE0rQ==","signatures":[{"sig":"MEUCIAYpHb1VXs12GSGFdEGCEAvxrVIPy+ta1AMJBJua0GNMAiEAkKUGBudgG+oA/3h9geFAiNuMohWvf4wHfnNH70bNtnc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260321213503.a0b7272","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37592064},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"a0b7272c28330d624917615551f538dfdde4e3d7","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260321213503.a0b7272_1774128938073_0.7921658578837507","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260321220624.87abad3":{"name":"remoteclaw","version":"0.1.0-next.20260321220624.87abad3","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260321220624.87abad3","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"2a6e46fc4238f2d4a661f867aac1d5bacb4434bb","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260321220624.87abad3.tgz","fileCount":2518,"integrity":"sha512-oCWhVBaBKhujOTX3AzXPDra0DM/hkjwzsK9PE5HBBd9JSjrbl3d9S91hLnnm5+p5N20I3yxExXYBvU7A5noVSg==","signatures":[{"sig":"MEYCIQDM29vdYfpv1zeXnexA+wt2ShihhjtLW8C4ekR5OwFPBAIhANPOkMmJWBmg6kN3D9BrFPGLZUalldzzcexlGAzIgPFR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260321220624.87abad3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37595035},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"87abad371c41e307de902ee7e8b9398faca3016f","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260321220624.87abad3_1774130818961_0.09209627858778657","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260321223744.99cbc59":{"name":"remoteclaw","version":"0.1.0-next.20260321223744.99cbc59","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260321223744.99cbc59","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"0b7c834574062a0179737ef906ea520cde3030da","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260321223744.99cbc59.tgz","fileCount":2518,"integrity":"sha512-1o1s9UQMx4QocA11vniYUYUkYuP3eIszlLRLGpCnZUP6SKCPVN02CP2DzwC4xaSTCuEOvNKKK3uB8YE/yeWxWA==","signatures":[{"sig":"MEQCIEpidOXhHQEuLPfXFgkCcBIrAu9hVUPJVpSE9c2BYisNAiAswfZ7PELl7fbUW0kzspO0L5yoEDzm2Sxkrj6BJ81hdQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260321223744.99cbc59","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37595395},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"99cbc594fbdb042070f4f59c27ecd36bfbf19175","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260321223744.99cbc59_1774132698717_0.5236753729574415","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260321224419.f9f22a2":{"name":"remoteclaw","version":"0.1.0-next.20260321224419.f9f22a2","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260321224419.f9f22a2","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"b6f95521a59993225787bfa18eddd04eed4d9910","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260321224419.f9f22a2.tgz","fileCount":2513,"integrity":"sha512-wGYI+dFVxXc2QrHmo/7oPkynapvK+tUbRj1kfy9l2s4fdsgBu6BjtBtZQx31WQgb4xKXv1lA+c7AINpliVYBzA==","signatures":[{"sig":"MEUCIFXtXCD9iTtN2gimH0cFN7nvyaLr+DiqteCxB7lvCTHuAiEAjYb8V6r77eeyIdBL8h7QvUX6KrCvJuGlo8hSsUQom2I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260321224419.f9f22a2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36620083},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"f9f22a23d746005fda4960a31dea1e16bd00a431","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260321224419.f9f22a2_1774133093294_0.5260763072018899","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260321225017.c6feeda":{"name":"remoteclaw","version":"0.1.0-next.20260321225017.c6feeda","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260321225017.c6feeda","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"7b961e745a28587de941c27d49f9d9712b7a6579","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260321225017.c6feeda.tgz","fileCount":2518,"integrity":"sha512-oGwW42zu2FpbkgHaufqA40qNiSjMjPc35OuIWz0y60HQypn9nv9rV95vavBvM3+V2/7JHfhlfnqDmCy3mUFBpQ==","signatures":[{"sig":"MEYCIQDd37A2rrwt47wvSHAIkB9pIOUY6o35lszATltX+knWAwIhAOLo+fXon7tlRQyWKbYiLEjUqDBaPIHxZoo1UdZOmBzO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260321225017.c6feeda","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37595844},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"c6feedaf89f7fab6ad8894dab3960ba36ce51c64","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260321225017.c6feeda_1774133450390_0.08478738082537318","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260321225707.3b4e790":{"name":"remoteclaw","version":"0.1.0-next.20260321225707.3b4e790","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260321225707.3b4e790","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"4d90eb389e243ff1653b3f0bcbc3c6bab6de09ae","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260321225707.3b4e790.tgz","fileCount":2513,"integrity":"sha512-Zf5lkJVGBj3DTXCSktdsEitFPvxmtaLxT+UP0itOlLuZeRJ6VtN8Rga+x2q3iv/AYHlsgkkkh95yv7Txlzp7Ig==","signatures":[{"sig":"MEUCIQCHfvDMHgIm85x66rkEHrACB4keyI7g5kysRJey++c/BwIgS8SPPnRIblQfPnj2qWigWWtQ+f/9GrJj3/sHj/jGcCo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260321225707.3b4e790","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36620525},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"3b4e790dd5181faba712e3bccc1e16714bd4af23","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260321225707.3b4e790_1774133862147_0.830973356178816","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260321230403.f83bb7a":{"name":"remoteclaw","version":"0.1.0-next.20260321230403.f83bb7a","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260321230403.f83bb7a","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e097c6313cb18a94855eaa704bc7b93ce4e32852","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260321230403.f83bb7a.tgz","fileCount":2513,"integrity":"sha512-NyQRpKev3vbKg22XV+G4M26yfbd+26vNwpdSqSKb/KL62mYN4k8FJ1mrcTn+KsKg8pkbEAypUIvw/JD40vTauQ==","signatures":[{"sig":"MEUCIHyj2+qY6GWUTUnTdqfqyhHyu2RUcbbgjTu0+se1HcrqAiEAxOW3V0Gjdb+v9tEgQ4Qz2dEKHcC63ip/rty9K77LSo4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260321230403.f83bb7a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36621491},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"f83bb7a7043282a64d2bad20e78b32f5b0b4a1fd","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260321230403.f83bb7a_1774134277672_0.11694253168070823","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260321232814.1ed5a96":{"name":"remoteclaw","version":"0.1.0-next.20260321232814.1ed5a96","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260321232814.1ed5a96","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"c33dacc87fb7dd080e3848c99f0f3e900122023e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260321232814.1ed5a96.tgz","fileCount":2513,"integrity":"sha512-iH2bEyGPG6RKolPiwuUuOsjTJBaCprjpkiwXZViKgXe8IbvhEP8cVkvXXuY26IhOGhsAr5EropdbPClszcnQxw==","signatures":[{"sig":"MEUCIQDqGBcrC96DmYzxRyTeTTCIWu2H9V9Jf/KT2IYxU/8c3AIgEsOQiTpocjuD/qLjUiqcS1hAhyMFQQ6kP4tTTfdvboU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260321232814.1ed5a96","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36624348},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"1ed5a966d67fe4b9f6ed84586f04833d84cf3d38","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260321232814.1ed5a96_1774135726413_0.3268807260424067","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260321233641.d5702ae":{"name":"remoteclaw","version":"0.1.0-next.20260321233641.d5702ae","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260321233641.d5702ae","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"77a26448966afea6abc52863a57682e66f1413cb","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260321233641.d5702ae.tgz","fileCount":2518,"integrity":"sha512-Kkm7Pd+rGltELPoeRk0QTpkuAFGThvPn6Qx/IxGEG4XVQqe3hkWqWbXJEeV7yFxc4AvJf0kZ/xdgGRqcYFXOIw==","signatures":[{"sig":"MEYCIQDV4SR+UOIyOX8H8V2Yr8tkkg+Evp9TI8qDDlCJ3e786wIhAMEJvdLcGk1FhMeuATtRDiGTJTHakh0AmtEjWI4L2vGj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260321233641.d5702ae","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37597411},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"d5702aed80102d2327b655d3a65a8e01e7b5c6fd","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260321233641.d5702ae_1774136235335_0.6007379080750126","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260321234814.e1aa8fb":{"name":"remoteclaw","version":"0.1.0-next.20260321234814.e1aa8fb","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260321234814.e1aa8fb","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"6b08451dc6a9fb64826fafa03769dc9e9b3f01f0","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260321234814.e1aa8fb.tgz","fileCount":2520,"integrity":"sha512-UDm5r1ivjGQn1hz0wdwvSG3ccKEpAsyk+9Smyt5S3U2+kLRoal9lwHpxMNS472XELWjZblVSk7zppFvpIA4CnA==","signatures":[{"sig":"MEUCIQDPKSFbQ+yI398Na4LmSWwbY/dNSWwuI3z/zUqC2/eiwQIga1mJQoa5g7fy7gujZ0UjsSocwERRg4Pn1ZAxbfgbq3A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260321234814.e1aa8fb","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37600423},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"e1aa8fb13cf2486af79eebb8c0b05041a9dbaa92","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260321234814.e1aa8fb_1774136927222_0.1549645804603481","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260322001405.0584aff":{"name":"remoteclaw","version":"0.1.0-next.20260322001405.0584aff","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260322001405.0584aff","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"87722a45605b4aa4b8fd474fb5e2b7074f6c1151","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260322001405.0584aff.tgz","fileCount":2520,"integrity":"sha512-v5J36s1OQsC8hJ8Bl+D4tL7qti5GzNCjkEJcDrmZZAM+2B4xwhDTohwZaHDu+YLzWLhz2XQkwUujwQp7niRSqA==","signatures":[{"sig":"MEQCIFyZGQaWHE5filc5oZlXDvboNZ7K7SR08n6mIHgltCXtAiASt3/mp8iDh8N/oeDLqxzg67dyHzkqAD6BVEl3f5A2og==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260322001405.0584aff","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37603603},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"0584aff98923f5eae3102631c7250aa6b8625123","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260322001405.0584aff_1774138479292_0.37271896071619315","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260322004514.ed4818a":{"name":"remoteclaw","version":"0.1.0-next.20260322004514.ed4818a","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260322004514.ed4818a","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"3c0f12b2d9a9b59caad214e447d1aa28377ed7de","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260322004514.ed4818a.tgz","fileCount":2516,"integrity":"sha512-sNH6hCf8XuG/eWn0Yn8YkM/6UOVICJhRZHZ1nxWrD6xHM5HaaD60c/8WLAx5oZj+2mI+j1ADVPyVVApz3npi6A==","signatures":[{"sig":"MEQCIH+WIynvrx5Z/99KgoZ8M3eNnjvHu//QX4HZdqkQhtPKAiAj5ND5aqPZLssQSvk0Qs1EfYTgFUhnNGL3ZwHQ+UlQqw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260322004514.ed4818a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36634783},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"ed4818a1c19a224a69242066d12f809a84cb44bc","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260322004514.ed4818a_1774140350136_0.5948656631991014","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260322012415.ae33ad6":{"name":"remoteclaw","version":"0.1.0-next.20260322012415.ae33ad6","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260322012415.ae33ad6","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"617cbe41787dd2364c36ba44ce6796777b1c2c07","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260322012415.ae33ad6.tgz","fileCount":2517,"integrity":"sha512-O7y/BKaKk9dHDawc4oSPT406Fck07swtax9wk8SWkIpQfnd2JLbvbJHp7zf6t4EMCrxhwAA9xzt2taSZJIpcfA==","signatures":[{"sig":"MEYCIQC2OgS/KGFxas9YxXPrBJoxd4IdYE50o+r8x5+USTT23gIhAOUr0su0eDc6lcyTpRwyiqqjqWV0Tb6vGx4r1D5q70ZO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260322012415.ae33ad6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36653912},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"ae33ad6f98c280dd94a29dabcd236ba4a7ea3102","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260322012415.ae33ad6_1774142689027_0.5027265527318452","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260322015255.f778d23":{"name":"remoteclaw","version":"0.1.0-next.20260322015255.f778d23","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260322015255.f778d23","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"019246eafe7a99973b0b23cb4ee3e6b56c27cc0b","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260322015255.f778d23.tgz","fileCount":2524,"integrity":"sha512-gaboyPIeotR5tpMpzNJYL794ONno0JsZzkdNRlpdwExy4zZ7GGMqgK742bI+ZPmJLwrCiIJftazFXRHa871s1Q==","signatures":[{"sig":"MEUCIDYy8JFsFFw/BpdEzuOsNX6657ZrKEuntRkPZlxS7jiqAiEAhed2u0SmmoP4aJt5jgCGMfNEG4YeGHzKvAdshDTACFw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260322015255.f778d23","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37654980},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"f778d2302cc119164602272aeddf43729d9de8af","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260322015255.f778d23_1774144408545_0.31119624034190996","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260322022754.0413cf1":{"name":"remoteclaw","version":"0.1.0-next.20260322022754.0413cf1","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260322022754.0413cf1","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"b0688626ab873730461e9ee81b748897da926591","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260322022754.0413cf1.tgz","fileCount":2521,"integrity":"sha512-Qj19dXWZwEnT3NFpDd8cTo76w6ber5QuqZrBYrYPa0i3tYfkoG4OONjCdCaOc/f7l79rEDyakv+AS3QClW53wg==","signatures":[{"sig":"MEUCIQDg5G6zg9AVhXf6mEzEk0BpgzDf8YVGZ884jjQB/z5EgwIgW4cmb/ckxv0DPCX2AuXRka7Qjcf62vzFATMCqaYq9ek=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260322022754.0413cf1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36694982},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"0413cf15a0a68e31fa0c1084c9b0fda7b89c6e86","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260322022754.0413cf1_1774146510027_0.4996122784953232","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260322023757.0194a82":{"name":"remoteclaw","version":"0.1.0-next.20260322023757.0194a82","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260322023757.0194a82","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"940e1136d0a10653b036a20fe844c7346341d1ee","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260322023757.0194a82.tgz","fileCount":2526,"integrity":"sha512-OqrBAr7ZoqHlIdjASJ4XJX3y3aPt4iC3WXibdOgAmg6R1WyXiTU07aNor7KvwqbG9jUJ+Yd/psOxE5QAax0L+w==","signatures":[{"sig":"MEUCIB5ksr2a3MW7H1pdriwy5jKduHFX2qC31FTwH0ImNvhQAiEA33pAL0TlL9vAAEYuk+N0OOdNcJUuFFVz4vUoAK2nZEA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260322023757.0194a82","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37675198},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"0194a827e9acbcf1e3f9946e9c10e98665f049c8","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260322023757.0194a82_1774147112474_0.7806290405442666","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260322033659.00a5cff":{"name":"remoteclaw","version":"0.1.0-next.20260322033659.00a5cff","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260322033659.00a5cff","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"64d97e14aa8ff3c6326b982235857866787f96d5","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260322033659.00a5cff.tgz","fileCount":2523,"integrity":"sha512-x+R6iutB4LS7ukpMw+Fn4ykkCPuSlpe1v2bloCy1KrBrrSPKlUEX0p6/ek2fsgEM3qvwgrgX1FpVyJ0hSjdUuw==","signatures":[{"sig":"MEYCIQC7nB5yZrnGS9Xo8Lm+5VeeeAOpSVzetGkhBNUJLJYjDQIhAJyjjqtOtwqDDUUrDKrN1Ha9WNHNPZHcoqPOlo+GNr9e","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260322033659.00a5cff","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36697669},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"00a5cffcd210bbc125e7e541ed33d0f3df1b4ef9","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260322033659.00a5cff_1774150652887_0.16602124987540945","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260322065316.05b4c20":{"name":"remoteclaw","version":"0.1.0-next.20260322065316.05b4c20","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260322065316.05b4c20","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"79aa5c8c80b812e6e14bd8a7f015da17f60ea782","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260322065316.05b4c20.tgz","fileCount":2523,"integrity":"sha512-rMIJDyvg13qKblUV0CVSMFbuSqtT95qib9pWkSITDOXotpr22JxsEIv+w6qpfo2is5EEikP3dVEMk88NBQLb4A==","signatures":[{"sig":"MEYCIQDefENpYl1om39b/7hNSKlozJI1pbHSaUTVti7BmqscMwIhAJ5k95wAOm3IQqGw86dfJFhjJtJ0iwzuYvmvCd2NmX22","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260322065316.05b4c20","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36697971},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"05b4c20ba098036c08805a14dd0be0551c288d56","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260322065316.05b4c20_1774162431676_0.4589298084780937","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260322070121.6bc5323":{"name":"remoteclaw","version":"0.1.0-next.20260322070121.6bc5323","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260322070121.6bc5323","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"67c2a261c0baa18f8babe5ea88b6e047973956f3","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260322070121.6bc5323.tgz","fileCount":2523,"integrity":"sha512-PFVUWdgn+8CfkBlyUWzM8zzw9eK01JAg21WOAwSU9iEPWj3pcWkl5+x/iNSJLhFObPz3Ff4rXH9cFiNYkdl/9Q==","signatures":[{"sig":"MEQCIDoH/lOqUBKMOwjyBd2QjHv2lEqeI76544snv3E/o8coAiATY3p4+76Ah9PcDJ4yY+B1ne6cCNwLKlfwBB/VfSVYTw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260322070121.6bc5323","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36699724},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"6bc53231dc6a0184440c5bbdd61b56c3af09f995","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260322070121.6bc5323_1774162915172_0.9172826311581779","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260322071745.2e0e23e":{"name":"remoteclaw","version":"0.1.0-next.20260322071745.2e0e23e","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260322071745.2e0e23e","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"2f0337f0e7bf771579d10e40b5f3bd63d19a63f9","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260322071745.2e0e23e.tgz","fileCount":2524,"integrity":"sha512-OgU5iH81sOPbtrZ6gFPoAA7RF575cNLlw5OhS5gvpkh73Q7JOSYqQmDVCB/JinDxdZ+nta4isVcs0Flkf1C5Sg==","signatures":[{"sig":"MEYCIQC5lfLHxUIyk7ZGMmXA0E6ROMB396R59ISZA/9iIYHuuAIhALZDhlxBjPT3qe+6QWnCDu1Hrz3uN7MYcB2rkWRYjCC/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260322071745.2e0e23e","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36700848},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"2e0e23e529ad2d09860478d2df4d51e06f421503","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260322071745.2e0e23e_1774163899741_0.2132049602263213","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260322072417.30e4909":{"name":"remoteclaw","version":"0.1.0-next.20260322072417.30e4909","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260322072417.30e4909","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"4129ac905c7e29403d47accd70805f70ccd5af59","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260322072417.30e4909.tgz","fileCount":2524,"integrity":"sha512-xdO6dClj6szY8kikPOFOAYwvUMueHFmLjRrdAl+kcrtF7J8wxc0xjBoY7iUDqD/OVe+mbC4T3pc02hvGTm4UXg==","signatures":[{"sig":"MEQCIEfl6vksxsGh9jeKTu4xNwysiLU5pFFC8Z6d/GcARY1XAiBSYjzL9mlFLHZBJ3FjqxzQ87YqxU/zq4fMbNecxpvlBQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260322072417.30e4909","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36703701},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"30e4909ff302e1ac1d488e0a284d4ed87abedf69","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260322072417.30e4909_1774164292091_0.8705672327475205","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260322073343.c35ed64":{"name":"remoteclaw","version":"0.1.0-next.20260322073343.c35ed64","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260322073343.c35ed64","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"cebeaaa03ba065d194312573953577224ffd6fb8","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260322073343.c35ed64.tgz","fileCount":2524,"integrity":"sha512-X7KlQSb6x90xpDj3gjzMZw2Qmedewl4Jb28o+0ozw+fyTAGjkKEQ+aWdeuJkBc4WY/M1WgyOqklUEvxS2H9a8Q==","signatures":[{"sig":"MEUCIQDrkOQ9M9jqcWfBR4JIXFmDfo58H2nidH9/Thr6Hf2sHQIgC8GLLyVK6UQhB3RbO614jhO0A8dSzBL6bifoohpvlmw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260322073343.c35ed64","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36701116},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"c35ed642633bdf8ddad62e0fc1e8a9b07e85b55a","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260322073343.c35ed64_1774164857607_0.04117881535013357","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260322074011.5a4d6f6":{"name":"remoteclaw","version":"0.1.0-next.20260322074011.5a4d6f6","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260322074011.5a4d6f6","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"79ac5342f745406857012ab42b05c58f206307e6","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260322074011.5a4d6f6.tgz","fileCount":2524,"integrity":"sha512-da6chho9jKY/s47D9fO6ZaLq1hrML9qq6xARN6GZBHWD2e0ce1mxhEL0WF3WtMbR0wOqINa/IY8Old8RvRwTtg==","signatures":[{"sig":"MEUCIFbC+E46+Bb00Oz7BF86OJ20gCIyCeK/YyIse3DazqDGAiEAjtnzZYS/8fK151QEA0S4sEsXOcR8xBBkVvIJW2Rw1/I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260322074011.5a4d6f6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36701388},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"5a4d6f65e099c2cf8fedc337f2fc50faadd1d45a","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260322074011.5a4d6f6_1774165245231_0.9299772713346313","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260322075303.c0dba82":{"name":"remoteclaw","version":"0.1.0-next.20260322075303.c0dba82","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260322075303.c0dba82","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"147b68184e0c31ebb13fc7275fd840f579d15637","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260322075303.c0dba82.tgz","fileCount":2529,"integrity":"sha512-xUkAi4rgQIYdSiulyL1kN/WNc5ZrlPS9nGOMIm4fOZyRoQceCjsj/Y2IV0qfoLil/unP1V/GCgIbQHzYpBSsuA==","signatures":[{"sig":"MEUCIGU1zeqBq2LORQjujmzdmo4jQLYChp58+0UN+s1ANRWbAiEAtrScHEvN1vwYEmGQpnTqrQJKvhHx/8JQAIQ491gsKIY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260322075303.c0dba82","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37680860},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"c0dba827d57240ce200a4a2aca56b137f4d93883","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260322075303.c0dba82_1774166016926_0.9417253636864409","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260322075908.578da52":{"name":"remoteclaw","version":"0.1.0-next.20260322075908.578da52","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260322075908.578da52","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"3aad8c2458189602d66cdafb8137891bfe6afcff","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260322075908.578da52.tgz","fileCount":2529,"integrity":"sha512-2Vzv4eqrkSOhkyhNNXsBaHqQzZI7OZqCQz0kAw765ay4TRKiKQMpRUZg3y+N/px+bZAbKXGe/kwUZTGpRNNbeg==","signatures":[{"sig":"MEYCIQD/GiGJHneLUn7dhgyI4Hs3ZuAoSgKt3KPP0EbFjErC6QIhAMw/gZdcuUaWi3U/VgmbmzM3b17e1c2kyd112BKBPdyw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260322075908.578da52","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37681132},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"578da5229de2e63dc3bb36538ffd266bdd5c0b1f","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260322075908.578da52_1774166382649_0.11903312602717198","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260322081954.4a7c49f":{"name":"remoteclaw","version":"0.1.0-next.20260322081954.4a7c49f","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260322081954.4a7c49f","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"19f5d9cf666f0f72af859f26e4ada8765d9f8581","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260322081954.4a7c49f.tgz","fileCount":2524,"integrity":"sha512-6ZghyuiLdrggKz59G2k8o3KHz7MKnKJFy0CUd5jlMBsB/xlGAsqX7uNOcVAO9nW+x+4/RlKTs7IBlXGQ9XwqwA==","signatures":[{"sig":"MEUCIGEZabi4gQ4TPGv1B2kwpxvNiOkKGqpbPZq2hmhK5R3qAiEA5C/oX9sqcbUtYSCsLld6lFSGbiiuGwtvKYtVjQOzCl8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260322081954.4a7c49f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36701930},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"4a7c49fd98ada8c2d1faaaeaa623202a286b691c","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260322081954.4a7c49f_1774167628299_0.5164652904334035","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260322082630.7abd410":{"name":"remoteclaw","version":"0.1.0-next.20260322082630.7abd410","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260322082630.7abd410","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"b7d2652c1cf090cdcd2f78687ee982009750cecb","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260322082630.7abd410.tgz","fileCount":2524,"integrity":"sha512-ksFAzAwxAoRp8L5+E1fNvQ2PPQ+aRWr3jfV+1obKE0bgQaVHhp4Pi+Pd5IwWA+QzLECLOjmmT89ts9p9wrA+ew==","signatures":[{"sig":"MEUCIEj7B2H0NqgEQqUaytxlB88Fd4WphRldcW1hgAgMY7vnAiEAs1XQjGU9fQziJx2k7941yG2YUl0Z4vKqfWB+RSR7Lqo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260322082630.7abd410","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36704771},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"7abd410fe8208507824aa9dcd68c8f1baf130fcf","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260322082630.7abd410_1774168022484_0.5159685703717145","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260322083246.dc1eca6":{"name":"remoteclaw","version":"0.1.0-next.20260322083246.dc1eca6","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260322083246.dc1eca6","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"3091447f4742c3ecab6c1290c73e31e4ee0d8df3","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260322083246.dc1eca6.tgz","fileCount":2529,"integrity":"sha512-YrA/1VpqRDD+GnXLXCYRDBdIXbNtonNnTiKxXoAEPyJeUF9Znqa3LBbe2zkk/TOW2chw67Yb0Sw1Ix3UeneYYw==","signatures":[{"sig":"MEQCIB0znBlRjVIm2laJuzMFCUCu7Qut4ElVJPKDbRKgp/7IAiBckmRDLiW5fDlG0YP95j+3krQx1yLFSE+yYJFKb2PADw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260322083246.dc1eca6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37683973},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"dc1eca6533767a75b14c701af7015a7f3405b086","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260322083246.dc1eca6_1774168400786_0.3733491826833424","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260322083932.8226fc5":{"name":"remoteclaw","version":"0.1.0-next.20260322083932.8226fc5","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260322083932.8226fc5","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d0bb9333902bb703c4cdb3654e1daae8b0d964da","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260322083932.8226fc5.tgz","fileCount":2529,"integrity":"sha512-eIyu5CUv7SbzhdKe3AYsI7PMFewXNHZ50vSF+0zVbxi30qy5BlZJJlfSKLDSqiBwx9Ix7kUEL86QQzwvHTZzsg==","signatures":[{"sig":"MEUCIQDtY66DOAmWpshuFi+VsTn2LaiY8M5yX2HcjX1i0oYwuAIgEhSJ+gbbWoykufmHRQot/+oCOO9qQiGvmyREEF5zCrA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260322083932.8226fc5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37683611},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"8226fc5d2ce3ac7fd8bdcb494f1ff00d3605454c","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260322083932.8226fc5_1774168807210_0.3630269865059341","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260322085108.616cd18":{"name":"remoteclaw","version":"0.1.0-next.20260322085108.616cd18","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260322085108.616cd18","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"74849d6b509b2586a651fcf8b24004024f85545c","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260322085108.616cd18.tgz","fileCount":2524,"integrity":"sha512-KIlxMsZkJ4R2BfY/L95RXAJ7IQ3kbmgK4RQifX0z/ojw2Uu1tq1FqEpBv6pVJy6yoDd0paBbjrO085C8fcVBcg==","signatures":[{"sig":"MEYCIQCPFA5Xzm9HOYGoSBRXXkK+JG+NdMhJIoDabMDSh0yGsAIhAPjAoo4PbbBamTN3z8ygGt0I3q/crJ0SbG2rHoNv+6zG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260322085108.616cd18","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36702526},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"616cd18b185063fca3a9278b165299a9328bb1b2","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260322085108.616cd18_1774169504372_0.9783511804781062","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260322085736.44b273e":{"name":"remoteclaw","version":"0.1.0-next.20260322085736.44b273e","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260322085736.44b273e","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"4c87100860481be45b428d0fceab8e9f1bca78a9","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260322085736.44b273e.tgz","fileCount":2523,"integrity":"sha512-1Ycfqcd45VCwHL+uNJE91NTpkNAdpMTyr8K0q+j1FPgaJUm9N5RmbmQOO3n4eYvL7YXOZSQP7rhk7AOvAG6lww==","signatures":[{"sig":"MEQCIEWlPDoZrwJFOI0CFAXRr+mOvAQiUtm7HriLfFdkZQ0hAiBStgIjKavc74u2sQSnBEmuAV4QaG7x+VuWSAxfZKq2jw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260322085736.44b273e","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36702954},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"44b273ed7fb750e211b5e1100c4535d6abb09c67","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260322085736.44b273e_1774169887459_0.8241544934238283","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260322090906.c7f4fee":{"name":"remoteclaw","version":"0.1.0-next.20260322090906.c7f4fee","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260322090906.c7f4fee","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"941a43fbf81a8b20c1258e17bceb62cf438a71fd","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260322090906.c7f4fee.tgz","fileCount":2523,"integrity":"sha512-MZBRFLO/r4ZoykGw2NqaXnusdrXA+KMKfI1FiWxUVEaPJH7GFVN5C4S4tNc6RhLArPkVs7av7TUOZUl7IQEW0g==","signatures":[{"sig":"MEQCIBGdZxWHRqoUcd/OB57JCQU3UgZIUVyplRYbrS4vtC6mAiAwhOwg+U+iYL9KOgd3/1z/mOsgAezGVC9BiiOBXacuGQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260322090906.c7f4fee","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36705923},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"c7f4fee27d37421bf8f7628a9ba135dd8238712d","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260322090906.c7f4fee_1774170580496_0.0343634368898198","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260322101631.9227680":{"name":"remoteclaw","version":"0.1.0-next.20260322101631.9227680","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260322101631.9227680","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"0f2744b11a64e54190955fc8a6d7e64e48412cb0","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260322101631.9227680.tgz","fileCount":2527,"integrity":"sha512-SYue1LnaKnCaM97Sqo/nTzeL/Bc2eQxUpmyTZ1u6gDE84s9/LVBa5S/Vpyo6wAjeBfseyqBTUlUHYlvYtRLx+Q==","signatures":[{"sig":"MEUCIQDRdxGoBVNtGGjrjbFgLQaARkjwBDVgaygxrR1J94VjjwIgBMmPMaXRXj6KtJLZ7WrQXqLl3i3J8uvZzojOyOOVdi4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260322101631.9227680","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36744792},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"922768097d59e54eb6d58059e98e759976d82cce","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260322101631.9227680_1774174624381_0.48778289800886343","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260322105921.ab02044":{"name":"remoteclaw","version":"0.1.0-next.20260322105921.ab02044","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260322105921.ab02044","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"189fdd744fed1c0deae848679ebe98efd482afe2","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260322105921.ab02044.tgz","fileCount":2534,"integrity":"sha512-SvfuIt3r+Zz1NTBVnTIdQNbkcZW58GdsonMA83bURBgYtwfGOK7PO+c6JxfXWJ8e2lof6bu+TmrG9x+Ni/WzOw==","signatures":[{"sig":"MEQCIHy0nbgqmjHWUrBmCLupfrWB27GSnj8fyhJmAqd4fuV5AiBLGJ2UMJnOBi6UrQhutN5jbeZ5O0A/7lO8lJCbIZTtCw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260322105921.ab02044","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36792489},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"ab020448e5aea148d2d229a645d0e380b52bfd6c","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 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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && 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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260322105921.ab02044_1774177195050_0.6305982867964908","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260322112031.d86d779":{"name":"remoteclaw","version":"0.1.0-next.20260322112031.d86d779","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260322112031.d86d779","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"b0e5c4c604e904eedcb1d12d318ed44f40f320c8","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260322112031.d86d779.tgz","fileCount":2539,"integrity":"sha512-xubvEo+RjyRxPxp/V5xByQXxbwsnd2bYM1omv/Wb68xNIObjonQkTMSNol6Ji/LarVAHjETizOyXetUBP917Cg==","signatures":[{"sig":"MEYCIQDjcAFEWI75Rja3aYgBcyIwZ/eA8CW6CUDK/TonkGxhNAIhAKRLYgFfG1Gg3hfGBu+YYzMFSgHc8Ah4b6yoBDXUJb2t","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260322112031.d86d779","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37773263},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"d86d779ca6dcafe5911aa457ff87848b652a9c81","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260322112031.d86d779_1774178465133_0.8880231627783381","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260322114840.98d5fec":{"name":"remoteclaw","version":"0.1.0-next.20260322114840.98d5fec","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260322114840.98d5fec","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"5534ac46a7e818ac9368b78b5d54d8626013c0e1","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260322114840.98d5fec.tgz","fileCount":2535,"integrity":"sha512-i9r8b0v90VCVQgXB/mEmVrCd1+SO7EcN+mStM3u3C3VCMQ6EbjWeJNJS8JMm2ZsPckAS2I8DIijF8qUglh2s/g==","signatures":[{"sig":"MEUCIA3SmDsBcj3SPiqIWXyRmaBRynNnj8em6wKXfjqSnpFYAiEAl9p4MFlcnUS2XBFSV7ybnbYV5WNMJh6IruRRWNzodkY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260322114840.98d5fec","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36815207},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"98d5fec7cec77a1889261d3055835e4b2149208c","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260322114840.98d5fec_1774180154810_0.9684772834748745","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260322122047.21c14da":{"name":"remoteclaw","version":"0.1.0-next.20260322122047.21c14da","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260322122047.21c14da","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"b3ae7cc3b1a297175d47061287a0104cf7b79471","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260322122047.21c14da.tgz","fileCount":2543,"integrity":"sha512-rqQMsiPeQOjCkxi1NkwGLsL/prEL5rcG274Zxnt+HuPGbvDSDVBKN5xl1itFIu0YfoVJUtuR+pMD62ssjESfsA==","signatures":[{"sig":"MEQCIBvmwo4+cVGhb75rb1sePDgsIsa8vgkgJjN/Q33E/eBNAiBCoNel9gtKWaQ4bxt/5Gh8GGRzxfptMzjSUOx60n5+oA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260322122047.21c14da","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37802934},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"21c14daa0209b5b7c822c70407aa4825ef9534b9","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260322122047.21c14da_1774182082579_0.7214583078993304","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260322123506.a9a56dd":{"name":"remoteclaw","version":"0.1.0-next.20260322123506.a9a56dd","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260322123506.a9a56dd","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"dac6dde444e93d21afa7b8ba0deeed935a2feb04","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260322123506.a9a56dd.tgz","fileCount":2543,"integrity":"sha512-vEVY3RuQQjbohwSfjUDRxknC9iimv/nl35qsNfOB0I0FkbgDcipt2a2iwXUxfvCirnpBO6Z9U1M4Eo4dsHVWbA==","signatures":[{"sig":"MEUCIQCNz+2aEh6aUdy6fiZWzh+Ktg7FVe0OwQfL8n+y+GEwnAIgFaUq/iYT7sREE6iR4AKjof/w+11ahPdiv2y+BuCnw3k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260322123506.a9a56dd","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37816257},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"a9a56ddc66b0be42cd4ac8e51f360a82450bea29","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260322123506.a9a56dd_1774182941245_0.1661291675560217","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260322124307.7cc5997":{"name":"remoteclaw","version":"0.1.0-next.20260322124307.7cc5997","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260322124307.7cc5997","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"c8403945f584e990bc661174652be4b07123888c","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260322124307.7cc5997.tgz","fileCount":2545,"integrity":"sha512-QTHD0h7ExWRHf9Rd0i3DUIXpXX7LV8vsfEFliI9pHrkamDptdPBbzFtEUksY3l0i1Jy7/Sm+UNvlUOHY0dBEmA==","signatures":[{"sig":"MEYCIQC3DZV57Wt37rJn4FwGTmurMOYk5LGtTUx/XAj0gIVeyQIhAPQYNkrZhrbXljdDGNvqvLEUcxpfkJ8VChOeKqn8wk4p","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260322124307.7cc5997","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37828573},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"7cc5997a55416b82b4ea11fe34e5e1dfad79c0b6","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260322124307.7cc5997_1774183419016_0.612138761955481","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260322130627.3c030fb":{"name":"remoteclaw","version":"0.1.0-next.20260322130627.3c030fb","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260322130627.3c030fb","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"94890fde698e8bb5ef359f993c991a9c8d663000","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260322130627.3c030fb.tgz","fileCount":2545,"integrity":"sha512-He1Vzn1mEIQelnBsr37m7IEEvyQH5KvwtIZJEBPXErqx72TBpLRBgmAKXFqmiGEmji+XeIMCItudA7a5pz+1Pg==","signatures":[{"sig":"MEUCIEgrTD+YRt3b42jmJa/WluhWPH5MltzXt8Rx0g6WS9/OAiEA7J7Mh6dtsMDqIQGZ07zjnLEBakqMgFXWt+F0w7kAHHQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260322130627.3c030fb","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37829405},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"3c030fba9a3c7b15191266635149f3bc5c654209","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260322130627.3c030fb_1774184819857_0.5835370946006924","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260322131542.218c34c":{"name":"remoteclaw","version":"0.1.0-next.20260322131542.218c34c","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260322131542.218c34c","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"115e2d4f04f0ee4d9c18686fcf52808b9cba2e07","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260322131542.218c34c.tgz","fileCount":2545,"integrity":"sha512-ZoGa3EJ41rWsHb/s29azIh5tacAgN5CFmye4dCwn/u3+AWgF92hEFoUPOa5GljoAyvkH5RvY982Fhy5bcAYZ1w==","signatures":[{"sig":"MEYCIQCjFI2vyc60F3WlI08TzFbArV8CI4jB7R7TDBwqO/ReLQIhAPKI+l6xf11r5sV59FiN/YWq9Z1F6ljl1CFclQ2y3jDm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260322131542.218c34c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37832385},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"218c34c0060382c6057d7d08bbf7baa302118f8b","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260322131542.218c34c_1774185376090_0.024452595810505517","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260322133534.eb0e2ad":{"name":"remoteclaw","version":"0.1.0-next.20260322133534.eb0e2ad","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260322133534.eb0e2ad","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"c4de8df6ec115235363f989fa0b391d57a706d35","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260322133534.eb0e2ad.tgz","fileCount":2545,"integrity":"sha512-TCe1ggzxlWP/4UloexqC32cZxBEI4PxfOeCkY18PhnTxTSUsrqzhqe5wjG7M2nrS3qOu81dg+LeN+91js3vXjw==","signatures":[{"sig":"MEUCIQCi6l8tJLul1MJtMHNT7mID9EMjilTbZtAFc16kdJRqkwIgP8xTo0RY8bzH6LuBbsnv6j7Yr54P9PXF57xAVvRWvG0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260322133534.eb0e2ad","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37829466},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"eb0e2ad89bf9d00585933578e702a8f423051e27","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260322133534.eb0e2ad_1774186568459_0.19668990337312708","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260322134259.d7c164c":{"name":"remoteclaw","version":"0.1.0-next.20260322134259.d7c164c","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260322134259.d7c164c","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"379a78d1fab6e88258c15377c2821e366111bb00","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260322134259.d7c164c.tgz","fileCount":2547,"integrity":"sha512-5GBHjwgX/Ul3uYjqccvWzno+yIVHpyABM6veKI8+21F4mjW/MiB4BBY/RaQ8pfdc0kOpcYFKwd82rnZ3LPatEA==","signatures":[{"sig":"MEUCIQDFNTkI1QQUNGXYsuWe4TN6e0pJA1UyB3USkRqy3cns5AIgJUmj95yod1UEbra06qXlGdz6g173xhvbdeP9BaH3CAg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260322134259.d7c164c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37837677},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"d7c164cb74d33383d8a31a732e0d73dd2d9f3875","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260322134259.d7c164c_1774187015726_0.8189011980894565","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260322141544.b8d8f07":{"name":"remoteclaw","version":"0.1.0-next.20260322141544.b8d8f07","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260322141544.b8d8f07","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d66e840aa85bcd24f224db09d172da845b1dc2e3","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260322141544.b8d8f07.tgz","fileCount":2547,"integrity":"sha512-JYt7Y9o6Dq1fk6M2izUeUyggJTq/ZNlV6CZMj5Hy7iMjk00eevl7UEDUM9gjGJjFopSAioqSC9ZUpfaMQKQhVw==","signatures":[{"sig":"MEUCIQDEjwfpoyERJFyFsWmxOBkP+hy/oyxvTmz9v6f7RX7N3wIgBIrpeAQ7WiQB14aHqojsKjQdAG/x9AL4izg4INeRyHo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260322141544.b8d8f07","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37840518},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"b8d8f0716f1742ef6bf5ccf61ab3538b922ce2a3","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260322141544.b8d8f07_1774188979429_0.6175375754986356","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260322143653.cccde0d":{"name":"remoteclaw","version":"0.1.0-next.20260322143653.cccde0d","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260322143653.cccde0d","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"3e33e07172e00db9c060d033df4da16d507670a9","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260322143653.cccde0d.tgz","fileCount":2547,"integrity":"sha512-+UHFXA4sKXkiN06sO+/3Cf6pONkuW72sFf6yLY8WdowSpquXij6kjcCoEzYvldNpOJzCryedck4uLNkExnMTtA==","signatures":[{"sig":"MEYCIQDkeR9vzgb3Bg8hvyspEyLiMwvikmCuWjAsrFFWW+KizgIhAP25ESYEY6Y+4+d01NYxK/a/t5e06MNOUOzx+/efagN+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260322143653.cccde0d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37837673},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"cccde0db63d0fd6ac1c1a6757e0b69072854c2ae","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260322143653.cccde0d_1774190248424_0.7648774432922818","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260322144326.6025ebd":{"name":"remoteclaw","version":"0.1.0-next.20260322144326.6025ebd","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260322144326.6025ebd","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"51fb3e476143efafde5ee5e48eeb3fb738389377","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260322144326.6025ebd.tgz","fileCount":2542,"integrity":"sha512-yfb2PUD+VOm2WhGbLXgm3h5VH78zjOR4MiPKNtoOdvgURrGWaR/ScGeAnl7WasxNczKiuPWlS2TDMzlMdS6DoQ==","signatures":[{"sig":"MEUCIQDTtM2MKTuFGuGX/ZUgTE47z325yE0PIGTNHq4PWTGM9QIgTxwuFr61nKLu85e0R1zR+78ovgp69zs3uryRfq8hFH0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260322144326.6025ebd","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36855875},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"6025ebd128c7354a2aafa594df9de1a8131764e6","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260322144326.6025ebd_1774190639743_0.8080744892585712","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260322144943.1d914c8":{"name":"remoteclaw","version":"0.1.0-next.20260322144943.1d914c8","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260322144943.1d914c8","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"0a37da6edc9abb0befbc629fec447753f6751014","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260322144943.1d914c8.tgz","fileCount":2547,"integrity":"sha512-V6nUQkBjqxXjFEZIp9s8FuZI3SpCdEoRNgHC33V5Qs6rVBW0SUWJG4VOCxK8YoUWQQaWf787FLJzbMs9X9F+wg==","signatures":[{"sig":"MEUCIQDLJq067q639DZ2kiAHMjU3+VRQeCFepH4MtJXuYliq+gIgMWhlUHOLcs4n8I3r1TjB3pu/EuboFgY6dUl5neb9imc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260322144943.1d914c8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37840522},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"1d914c86f74ff71f166ddd6e2b5e7b0793ce69c1","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260322144943.1d914c8_1774191015641_0.06329625433958741","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260322151725.287e48a":{"name":"remoteclaw","version":"0.1.0-next.20260322151725.287e48a","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260322151725.287e48a","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d042b3fb552332369d74f1f12686f1bc87f05845","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260322151725.287e48a.tgz","fileCount":2547,"integrity":"sha512-2oWJbf/1fkGcaU4zWv29JbrEF3B8h82/mdb+VsyBogjEOBOvQk7v597EsB1VfP/0bSiurGRMl2sE4uCl/og4Hg==","signatures":[{"sig":"MEUCIQCe40MgrlDAju9CM+OUbmBzLJ57PEwR1O9DbmRYFoLDBgIgC2cYPAu59UUdHCgSesgFK46wRrPj2qtb3IL+hzdrwBY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260322151725.287e48a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37853166},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"287e48abcc4e79b533b98718f5bab5c3687f4168","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260322151725.287e48a_1774192678344_0.10665443183937318","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260322160012.aee50a6":{"name":"remoteclaw","version":"0.1.0-next.20260322160012.aee50a6","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260322160012.aee50a6","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"a48f6c1d98caa8d39dd8f6e4d93017262cb78c30","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260322160012.aee50a6.tgz","fileCount":2542,"integrity":"sha512-TWFGE1AgW8zxLDugum/AJSNzlVRZ8Fd5FtyJ5Yc3mZU7WLHi5NKPtM+AeHsNeogAGdzAyf+s/vuSM2ZN97mp4Q==","signatures":[{"sig":"MEUCIC439ZjBqeVKd4Hiu56wr3Xay/6zbf0Yodd+r1GhhAMLAiEAlmRZzlBczJgmR0r01PaapUjw7dH2kXE4KbeDG+6iggg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260322160012.aee50a6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36925688},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"aee50a61ad16211eb3580d91dbe57ee7a9fbf837","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260322160012.aee50a6_1774195245214_0.10839762748233661","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260322163335.330f22f":{"name":"remoteclaw","version":"0.1.0-next.20260322163335.330f22f","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260322163335.330f22f","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"0969d0868ebcfb6beed333d025bee4825ed75876","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260322163335.330f22f.tgz","fileCount":2547,"integrity":"sha512-AZWTXYk9kuzKO6uwZluGY4QZXc5fIS0zrEV35RgM4+1NmkSBsjJhixRqjcuQVWcjNkHMgs98u1fH83tJzNISxg==","signatures":[{"sig":"MEYCIQCp4Iu3lgLd69W7gSWwn9e8sBbhLjw4QBOrsQke3p61pwIhAKHhxQjgziSvniX8hwtUIcdKAMVFg0c8yggYrZIHQcpG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260322163335.330f22f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37924979},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"330f22f1d9e8417efe9e380fd11db08223070749","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260322163335.330f22f_1774197248161_0.19139416470894877","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260322165800.d1bd6f9":{"name":"remoteclaw","version":"0.1.0-next.20260322165800.d1bd6f9","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260322165800.d1bd6f9","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"8b33baea21f42b3b059785a963ad939e304d5331","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260322165800.d1bd6f9.tgz","fileCount":2542,"integrity":"sha512-lwfdk8xPe/1Voi8G9Pahbs5zFjWh0KgqVCCDsBmGiO9ffVWnIJPLuiBIjGqEOzgkMRnF2ZbzqxagtcZMkuUW8g==","signatures":[{"sig":"MEQCIHaIVHJ/TsVR8ETW6SIHzrjRte5wQZmA9N4Vz1iVrIw0AiBShDZIzDS3NDUpIz50geaaxRbsiRU3Bm3fmcy/Ph4RSw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260322165800.d1bd6f9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36965061},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"d1bd6f9419d095c81230b4ebccf8653f79ddd397","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260322165800.d1bd6f9_1774198714029_0.4846178638819245","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260322193016.43af080":{"name":"remoteclaw","version":"0.1.0-next.20260322193016.43af080","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260322193016.43af080","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"ee2431875ad757c84000be22caec67fcf1b3057f","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260322193016.43af080.tgz","fileCount":2542,"integrity":"sha512-72DivP6GPdpFZpeY/QP8BqYDt+3jcj3XLMRrv1A5BFZBe1a0PAzmanbftI+kHsLVmELMDjXXNVC5AegwlIYAxA==","signatures":[{"sig":"MEQCIF87qhyb1mOwdoPgZRl2/MEnNzRuYtUIZxImmfwgdTQlAiBvuxiMCDqVq6sL3eic52WaXm6XOCoIualB9gU7Q352Ow==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260322193016.43af080","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36970768},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"43af0806ba5e07f292fd1fb31639a4a61f50385c","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260322193016.43af080_1774207849954_0.14781003224744982","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260322200225.84f42b4":{"name":"remoteclaw","version":"0.1.0-next.20260322200225.84f42b4","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260322200225.84f42b4","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"672a7c274d0dadd8b458d78f50a7c4ed93e53053","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260322200225.84f42b4.tgz","fileCount":2556,"integrity":"sha512-tGeJT+6kD/opYS8DtNH3G+byRNL0TidA0GapJg/bNP2uSW3zykmDX3SYwnAOsz8EWscvdZGhXOo8e9pup1tceA==","signatures":[{"sig":"MEUCIQCBDkY4aq4HmDcTalXkWKQTZluCHXIk5AeGIEL7mb/X3gIgI77FjvGEoluAHh/zLm6kaen9FIuV1GXMz6GsZFNajho=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260322200225.84f42b4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37966893},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"84f42b488097f1922febed397408f52add292525","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260322200225.84f42b4_1774209777626_0.9730841609502636","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260322203034.685dc54":{"name":"remoteclaw","version":"0.1.0-next.20260322203034.685dc54","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260322203034.685dc54","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"3a2471283c65e10ab71a4286498b45c3be8a8164","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260322203034.685dc54.tgz","fileCount":2551,"integrity":"sha512-NiLoTtcR7Czhndnk6UOA1W8S1H62uUKh89cY/X5u9gT199WAtck3Kpun95krxUkZoUUEa2zTsBJDm8Pom3AnuQ==","signatures":[{"sig":"MEYCIQCg/WtBNZ9oe7NMBv5ITTeqnK8yBOIqR3J0U0xExrnvTAIhAN2tyOpgm4fv+MZVbexD9AyGtwgWt3CYoF43vfi75X32","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260322203034.685dc54","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36995980},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"685dc54c53c8daca8276c539bca97cfabb2021cc","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260322203034.685dc54_1774211468375_0.2582952705876187","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260322203824.60611ce":{"name":"remoteclaw","version":"0.1.0-next.20260322203824.60611ce","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260322203824.60611ce","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"ea3de2da7f4ffb4dd43b2b26f872a856ca455004","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260322203824.60611ce.tgz","fileCount":2556,"integrity":"sha512-njr07tEAfIxFWda2dGiK/eOU6MgsLoyqYSB1dekJzCG+IbCwoS6F5qD32onE9ZlQa3oQtiCbyX7jmnoL9z5Gtg==","signatures":[{"sig":"MEUCIQDEs9f3PG3TdajPAxi+awSURthivX7wbWt4sk8eZBIvOgIgCvLRo5Vz+hm+qAy34M11VTRzZ/1JgW7Kvkv5zUYlKHo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260322203824.60611ce","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37980139},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"60611cee99ca955cedea824154c648c0fc256c88","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260322203824.60611ce_1774211937705_0.8931013943643702","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260322204455.5cdea23":{"name":"remoteclaw","version":"0.1.0-next.20260322204455.5cdea23","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260322204455.5cdea23","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"240fa9e298cd8823bdfc2ca584cc69bd2de71c27","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260322204455.5cdea23.tgz","fileCount":2551,"integrity":"sha512-FzEoUFzXPI7xhMXrQW5fJb+hteRYe7CFd1k/8LMWPbVFxSBZCDp2L0y19D8ZrvRXTSKpIo1n1y8T4Ffehr91BQ==","signatures":[{"sig":"MEQCIANXZepyrR7DX3yxnbNy/rCnbkLP5NqC5BkTyJYYybrJAiBu8cQgQ8C93TB2HsDSXvr+NnywHSFzNAAeL3LCuFm28A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260322204455.5cdea23","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36998831},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"5cdea23b4f52c55aca55f7aa9397e72ae7d0db5e","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260322204455.5cdea23_1774212330498_0.8831672274681786","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260322205306.89f28a3":{"name":"remoteclaw","version":"0.1.0-next.20260322205306.89f28a3","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260322205306.89f28a3","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"7f12b9a30e5aa2af3778ebed0233c6049af5e649","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260322205306.89f28a3.tgz","fileCount":2556,"integrity":"sha512-T0H5G+9F+2pDiGHI5Oagb5xstgdeKNDAfU3KjvaKFTUQlrrBps2yPRA0gREJt4xCiczqO4Fx4FJilQeMRRgMXA==","signatures":[{"sig":"MEUCIQDcoIIiFjg3HAL1XOlES4DwBmPwH9c5j1d0OIENZmH2SAIgKf4SrKaPg4d72+aBN1GXzWUlYHWJhpdWBKSpN2/XItU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260322205306.89f28a3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37980112},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"89f28a3024f87848956ab006bc88ebd2ddfa9dc0","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260322205306.89f28a3_1774212818050_0.24820102691158263","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260322205930.9d83fb7":{"name":"remoteclaw","version":"0.1.0-next.20260322205930.9d83fb7","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260322205930.9d83fb7","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"b85184d9190ede81ce775ef815689b4b8355bdbf","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260322205930.9d83fb7.tgz","fileCount":2551,"integrity":"sha512-4yzIyNtyE5o9XuJV5oPp8sv3kpmGa9fXfqO6/6gsw0Io4HN/s9EK+TJiW536LlfCKycWAh9HLD9f5OFQXx75Lg==","signatures":[{"sig":"MEYCIQD84nMNzZAtSQ0uIzjxqytj2LCBN0PkaKPSTbFcf7ra2QIhAPvrgSa0xl8gjh03QKqOE+Nj1TkVI7QFctHnzU6dTYTp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260322205930.9d83fb7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36995972},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"9d83fb745b434308f2e5547786b01e46f9c457aa","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260322205930.9d83fb7_1774213205035_0.8334111926880892","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260322211545.b5e65e9":{"name":"remoteclaw","version":"0.1.0-next.20260322211545.b5e65e9","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260322211545.b5e65e9","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"cd425bca4b57270fa7803bc918de46a57ec3412d","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260322211545.b5e65e9.tgz","fileCount":2551,"integrity":"sha512-Sd8aZ/T0pG5vJw/qi7kqLmO7jnyEEYYZBpj/lMonZqaxW35wJDRa1sFPNh9oOGVNJ0HRLnzJvk6OV3ASl1ug8Q==","signatures":[{"sig":"MEQCIAIEWmvx4YP3f/14rFJvELBiAw+2NLLJfglnkWeoa53fAiAfpt8wJRemmamaT8DaNNztZOIm5EpvVLduOsURJWO1rA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260322211545.b5e65e9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36996010},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"b5e65e9e71f7556e629df5ea768a45d623db00a3","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260322211545.b5e65e9_1774214179405_0.6938814312082149","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260322212209.b265830":{"name":"remoteclaw","version":"0.1.0-next.20260322212209.b265830","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260322212209.b265830","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"59b48bb74c424aece1def1874cb9700e75141669","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260322212209.b265830.tgz","fileCount":2556,"integrity":"sha512-M2GqsfNNyUzGElUAs2A7QRu3dTtucCg4YYzlQXHrA23EqImq7V2Kg5bsoiFs7ZfbMR1UFHuv8+VGCKi+qdkPug==","signatures":[{"sig":"MEUCIAiUscTaHBsmz697vIge7wxoGGJy5yI5JRdCwZw2/nfYAiEAqPHT8XPgpH064uco/sUlYS2SMdpiXsb52zOyH04fNmk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260322212209.b265830","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37979930},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"b2658303368d4b03193c86c7ed15b3e9151b7b0e","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260322212209.b265830_1774214563834_0.667262052059332","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260322213104.dc6bebc":{"name":"remoteclaw","version":"0.1.0-next.20260322213104.dc6bebc","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260322213104.dc6bebc","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"a2d6f42d9961f41dc65177b63d3e441e13179e9f","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260322213104.dc6bebc.tgz","fileCount":2551,"integrity":"sha512-Cbb98eO8ApMmKuEeH664L0ff74y3fP0Yf+d4tJ5HpTzcfQGvq2HTwe2RbKBl1dkWMdiMME+HE+9rbWHu1BsejA==","signatures":[{"sig":"MEUCIAebS+xvOkIqnAnP72SRgO46JqRSBoN6+i2vN0wH8ovrAiEAoXHHNGda/q9jCPjhWXL1sdoLwFePoGDN9XDE249i9zo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260322213104.dc6bebc","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37004678},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"dc6bebcae61f9af14abba6dfd4762c1213e96cd3","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260322213104.dc6bebc_1774215100613_0.6241259841394204","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260322214135.777a67e":{"name":"remoteclaw","version":"0.1.0-next.20260322214135.777a67e","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260322214135.777a67e","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"c4043610002e4b50ad65ff7f231af86b96501117","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260322214135.777a67e.tgz","fileCount":2551,"integrity":"sha512-0reckTKZJfNQK3FDSJ5o7JMNPLvsXCOxnwxCIYQzt4mQw1vqVaAZ3nzGMeqQr4Wrv6HwwZNrLe2SFlDb5Ed2Ig==","signatures":[{"sig":"MEUCIQCmK9w9kt+s+nJt5ME9348SKa3gk3L4YDccFfX4lZShKQIgGX1z0zyFRfyD56XzjNeNqC6850/hCRTPYp/prFCiQg4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260322214135.777a67e","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37007753},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"777a67e60dfc5452acf2429c21f31440b03950bc","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260322214135.777a67e_1774215728316_0.23234353883855996","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260322214802.810ffc6":{"name":"remoteclaw","version":"0.1.0-next.20260322214802.810ffc6","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260322214802.810ffc6","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"63374ec79e9eaaa4fd7f0efa6fb47a295c7f1c10","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260322214802.810ffc6.tgz","fileCount":2556,"integrity":"sha512-IH/oPE8gg9s8n90WvyKt4LrDARjPFVsxWtmuSXXdkh/q2toejoasVg2RcqTaLIbY48nWsU4Y85CXqSw7Ah4g3w==","signatures":[{"sig":"MEUCICOt0J7MTqpSl5ywp+juviltPJqFrrfnRP08P0bEL0uWAiEAwa1iVMQJV9mH+bSOV1qtB9u5vSkJC+Uc6Iq4oyzV/94=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260322214802.810ffc6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37991893},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"810ffc63402a1884a3022b09342c0a6d2fd7e8f0","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260322214802.810ffc6_1774216117319_0.3392577344595076","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260322222407.3901213":{"name":"remoteclaw","version":"0.1.0-next.20260322222407.3901213","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260322222407.3901213","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"bf7b24137b298769ce68540d765096ef39fb11d1","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260322222407.3901213.tgz","fileCount":2557,"integrity":"sha512-j89KqSUsebqlDyFLNLr++sVyisHdHm3BG6B9oiIYllc0HnFFiwWeDApHz9qKXXDoVXEDJWf6N10iZqXDLdh4og==","signatures":[{"sig":"MEUCIQDFV9Cksxc0HIXNS6WwFmacLvFxfETVaJkZ3QehlCC3vwIgDOj/E1ssTb3mFjY+EgSuPj/4iypMRfZ3nSIVhb2HWTM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260322222407.3901213","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":38071248},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"39012130f5c74de614701afdd39249914c6c717d","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260322222407.3901213_1774218281565_0.722675104285194","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260323093451.2340dd1":{"name":"remoteclaw","version":"0.1.0-next.20260323093451.2340dd1","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260323093451.2340dd1","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"37be38ed6de375e20b523c3616647377373d558b","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260323093451.2340dd1.tgz","fileCount":2563,"integrity":"sha512-/scNBC3P/kONzCPP/tCmj+WuuJqJ8LYV94dn2tQIexutMjR5togkEL8mCwHhzqVz9uENYpBZjHrn6k+U6/5h5Q==","signatures":[{"sig":"MEYCIQClo8tkzxwIXfLjm1w3+hl1X+g0GppakWxPDsS/EfoyAgIhAJNSlEO9gWiLH9hjrc7r33GYhoTLHGMM5scM5iBUSCVJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260323093451.2340dd1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37878994},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"2340dd153227a29a7c883859dfeac1c153a1a546","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260323093451.2340dd1_1774258524482_0.8489075257543541","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260323102603.fdfbc83":{"name":"remoteclaw","version":"0.1.0-next.20260323102603.fdfbc83","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260323102603.fdfbc83","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"b51bcaf9047c5af78ba22aa84ad7ab46ff932ca7","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260323102603.fdfbc83.tgz","fileCount":2561,"integrity":"sha512-dn0CfSeQ+q76jogxcuBvVSuzdy4RV2WxfKxbdf01GP5RZOkadRQq5oqltjy8asdih6AtPIawa5njx59jRKV6dA==","signatures":[{"sig":"MEQCIFarZuYt+xY4MwB/rdqxTc4sQJwuDIXXciVqu2cZo+kjAiBTUDJyMxZaRBDp5HAgF9BPpS2kaOs/GVeQs6pEUUQEaA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260323102603.fdfbc83","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36948662},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"fdfbc83ff53412f9ba50a9331e79b568f989c378","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260323102603.fdfbc83_1774261597373_0.23163765102058997","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260323113053.96b3527":{"name":"remoteclaw","version":"0.1.0-next.20260323113053.96b3527","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260323113053.96b3527","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"c97f169918187948e02b77b4576763069c591e16","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260323113053.96b3527.tgz","fileCount":2563,"integrity":"sha512-J7SkVITAXW+lsScbHwrdAi84hvEbHGRrhLYFDNbRXicJQVNSLX/Bcwa8UYG8s62mq5yBgsx0blnP3n60nEtmNQ==","signatures":[{"sig":"MEQCIC84rOaL7vsz+hOh2RSK5S1rdJKT44GeYMDmLYIUCidKAiAMvchADjTO1iBxPugWPNQCuHGHfMJBbiYndPhXoe0LtA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260323113053.96b3527","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37045235},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"96b35279dbc21b6cc23ae31aa4891e97ee1432a7","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260323113053.96b3527_1774265489158_0.3927221277579662","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260323121818.31b1d9d":{"name":"remoteclaw","version":"0.1.0-next.20260323121818.31b1d9d","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260323121818.31b1d9d","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"5e3c45c71779ac910076a9e669437df331787c4e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260323121818.31b1d9d.tgz","fileCount":2563,"integrity":"sha512-JAAq4qgamNpueS5wAXgfuZtXo2JatShiM95kQL8igFIDuGCdy2bUXdFsOM1t/0m+J/fZG1c5LCWFlCaIFOhQwQ==","signatures":[{"sig":"MEYCIQD1my2Sw9Fmn/Xk1CiCUr8ar8FN+LJXmj1QaPmPaF9FsAIhAKboikUN2tKUlQhXEMYdNk42B8Hn79CUlyrg0crtqjoQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260323121818.31b1d9d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37046025},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"31b1d9df90e9aa4560a96baa1c419aeb968dde7b","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260323121818.31b1d9d_1774268332845_0.3565546483752624","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260323140027.6e9e913":{"name":"remoteclaw","version":"0.1.0-next.20260323140027.6e9e913","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260323140027.6e9e913","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"0b86fb8a02d438d0923614a2e116a83eb7a7dd1c","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260323140027.6e9e913.tgz","fileCount":2569,"integrity":"sha512-aHnfE2MjlABmBdgke19Zkcpj7CmJxohIknCJzNUnFRrwAwWT8q0EP4GXQ/e925qFFCczpefxXbEwhzuVNxKfjA==","signatures":[{"sig":"MEUCIQCulMNAcZO4Y5VXnfZ21OTYG/AziSsw+9IMBeJH8ud2ZwIgLUNsWHKE9h7riQafjvR793sz2f1UjwWG/+G8b9xFF5k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260323140027.6e9e913","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":38142555},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"6e9e913a4e676caacc94f8a9f341918af4e5cb12","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260323140027.6e9e913_1774274461130_0.08388947697275739","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260323153827.72ca0f7":{"name":"remoteclaw","version":"0.1.0-next.20260323153827.72ca0f7","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260323153827.72ca0f7","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"547622edf4ea7ff8d39423e3829b3f236fbccdbc","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260323153827.72ca0f7.tgz","fileCount":2564,"integrity":"sha512-7XrEPxIVyyO8v6H2G5naxXIF8dnKydv+fhwPEGz+CWusdvHNvE8YWf3Yd9R0Hc4YDlHyO+AV9D6qvXh9ZpLMmA==","signatures":[{"sig":"MEUCIQCnw8e10MBk6bx84uBJIPgA2UePmhuqU5EkpPkXUyHpdgIgQ9Ts6WntVTWrcJw86RUVej7BQ9AAfawf1QgkhpMnG+Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260323153827.72ca0f7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37151892},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"72ca0f79838dc2c766da68d4f30ae91eabbcb598","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260323153827.72ca0f7_1774280340966_0.0004341118811261868","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260324000046.1a2092b":{"name":"remoteclaw","version":"0.1.0-next.20260324000046.1a2092b","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260324000046.1a2092b","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f01a7463ddd41b96f4f03fe271d4f4f82ee32647","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260324000046.1a2092b.tgz","fileCount":2564,"integrity":"sha512-3ZmYBHk1qvLu3s+ePeeKqvjA7RNNG00hDzIUFtPBoEOlVGoF/2SNNAUSdV5FDZ9QHHji19s9NLL76jUbFwn/sw==","signatures":[{"sig":"MEQCIG79J53zxB01tWnzq2ubtOb+/UAQ2Rm3jux7dKhnp3juAiBVNpYOJmd9M6K7gEGRl33cng2uGnfI5vupUDu+QrPTKw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260324000046.1a2092b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37156075},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"1a2092bc91a323da501f4a5b6aee0582d43d1188","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260324000046.1a2092b_1774310481089_0.5805874552024983","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260324004004.661db3b":{"name":"remoteclaw","version":"0.1.0-next.20260324004004.661db3b","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260324004004.661db3b","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"2d36a1cba4780dd93d2a0b6be24cbe6cf337bf0d","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260324004004.661db3b.tgz","fileCount":2564,"integrity":"sha512-SOfG+5PRdWAZuzFV6lBhcP+NGAzjvHyFGag7lGi6w8EKLwfJ/OZLWrLs14DljR/tkdXtMCISOsUIbGjazu+F4g==","signatures":[{"sig":"MEQCIGg7mJ0sy5AbYBPL9FnHF2RpPhjieXLJ51cLwPKh8NF4AiBVaYKNiNhwKmodGwM24LDYMLbJS5w4rrr0MNBFeHXgwQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260324004004.661db3b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37158749},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"661db3be7530e51bb923010ec095eb9173d8ca8e","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260324004004.661db3b_1774312839896_0.6991530161486825","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260324015431.907ccf6":{"name":"remoteclaw","version":"0.1.0-next.20260324015431.907ccf6","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260324015431.907ccf6","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"5ba8a048a98656662bd5d9d9238cb557ba297e1f","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260324015431.907ccf6.tgz","fileCount":2567,"integrity":"sha512-0pmEB46CT5YwfnSKU1Prt4vXYeh6K2rYDiuhJQBCkpxkWF/kjpBQS4uwO/OyQOQ5Y0f6YlHzxKpAhZd8dCRO7A==","signatures":[{"sig":"MEYCIQD+MV1KZl20iWJtn/a3RgexQR32Rp/055/MK28hFIYkwQIhAKQPz8b+NnOpWsIAzmfxAMHfp9loSqChuqzjhOmSeMi/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260324015431.907ccf6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37213835},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"907ccf6a9cf4f2a4227af0e8d525239a0101e3f1","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260324015431.907ccf6_1774317315144_0.9682251898430858","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260324024919.91d9f89":{"name":"remoteclaw","version":"0.1.0-next.20260324024919.91d9f89","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260324024919.91d9f89","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"bc0cea377f4c608d3c5c74dbed034267ea68bc8e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260324024919.91d9f89.tgz","fileCount":2569,"integrity":"sha512-Yk/OfeXdjtooAQwb+OYm3Z5kJWCMVFGwya0ktfh/CF/FSpPzef8qyJ6gr3ypwC/JJrWEzbK33NyYggUw12HFAQ==","signatures":[{"sig":"MEUCIA1Kah3hL9QEHqittVS5OlYvcccq9ocepUjPXcF7yhz3AiEA7fMt8STFZ+LnQF6dl4SwKkwuALRNNRHet6NAq43CFEU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260324024919.91d9f89","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37204076},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"91d9f89160dbc746016f62f7ce6ae493b2f35edf","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260324024919.91d9f89_1774320592895_0.30134343247448925","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260324033521.b1cf1cf":{"name":"remoteclaw","version":"0.1.0-next.20260324033521.b1cf1cf","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260324033521.b1cf1cf","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"755ade15831f5c16c40cddbc7bdecdcd2411a655","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260324033521.b1cf1cf.tgz","fileCount":2571,"integrity":"sha512-TbnQ9rngem5PV4z3ksMpFYeeaJufnqEny8Fss8sDlTksiGcXtvTcDjCSQZiLjNhZHQ31Nje/T2YRTLQ3uDcLdw==","signatures":[{"sig":"MEQCIB0vgPOgjTfxxA9mwcxoaeHncCfJ/IVOMlROvzCnymq2AiBmY7rXmMSGQhA78O7glwiPWcQrF7gPY5PS+PvpKtLpSA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260324033521.b1cf1cf","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37211324},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"b1cf1cf5d60e1b58fb4a7fc91dcc5aa8ab2951a9","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260324033521.b1cf1cf_1774323356517_0.45446330501646814","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260324045332.a862b7c":{"name":"remoteclaw","version":"0.1.0-next.20260324045332.a862b7c","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260324045332.a862b7c","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"fbd663547888f4ccaa93965f12fc8f8c448a25ed","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260324045332.a862b7c.tgz","fileCount":2577,"integrity":"sha512-vBkxSGjCMjY+DyAf9OoyVmQAes5rLD/B9oAcRmPcsE0pDCOEvpxquTm6MGJ86Euh/g85L29n4/5L604jpUtkFg==","signatures":[{"sig":"MEUCIQDPdDlrbLkOs/XaaaujuV+0A2VdRyzQKDDU6SS1WvW/iwIgCucGvFX2Dwws6De+gk3YUDjx+Ngmj7yddJOOvpjjl+0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260324045332.a862b7c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":38231335},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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":"a862b7c770c089b31972a47e5677a2f4a2071dc9","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260324045332.a862b7c_1774328046004_0.675734907414985","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260324055454.ba8ff56":{"name":"remoteclaw","version":"0.1.0-next.20260324055454.ba8ff56","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260324055454.ba8ff56","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"91e42fc0e9c23ca40aed264d6a2a9e8ddcd5cea3","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260324055454.ba8ff56.tgz","fileCount":2600,"integrity":"sha512-AwZYauAopzECW/2xgahOuU26M82P7Hjn5L1cVbvcYCTWHNFdsAcl64tOehCjDyl02NhEXYt8TzaLkznUPVaSjA==","signatures":[{"sig":"MEQCIDc87nXfAtp/HbWnCJeWcF6Wu5tg2VEoQaamfvmKxyCUAiAZ0p66XIZruhcCPNTihLP9OmvPkUg8pqCBcau1Myb2+w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260324055454.ba8ff56","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37266931},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/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":"ba8ff5674dfcf0c8e9b4a4e9406a374805eba925","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260324055454.ba8ff56_1774331728255_0.8720915889785046","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260324063747.5dabe28":{"name":"remoteclaw","version":"0.1.0-next.20260324063747.5dabe28","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260324063747.5dabe28","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"fcbdaaae5e27693bdd0491600e05e89664df834c","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260324063747.5dabe28.tgz","fileCount":2602,"integrity":"sha512-8uYHixldDNrsVuC0EEqQIwmLBfY2bUs/OHkw7LTBV8JS94F3r1gNSWsAGIa94oN60f7B37EIW6rsvpxQnrS2jQ==","signatures":[{"sig":"MEUCIQCoIrvmHba1DjCx07XTvfGRHqEliAr3cHYOZnPReIMLqQIgGVKCwv5273Yh5PbEJNgKsSfWxhjsmJhmRoZz0qrApkA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260324063747.5dabe28","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37294618},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/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":"5dabe28e4b112a1abcd8d5a291f87503db0cf669","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260324063747.5dabe28_1774334301024_0.6399358539760334","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260324072307.74a77c4":{"name":"remoteclaw","version":"0.1.0-next.20260324072307.74a77c4","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260324072307.74a77c4","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"35e3bf207ef2b159a586455f3915cbb2f6357980","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260324072307.74a77c4.tgz","fileCount":2610,"integrity":"sha512-9Rzz89tuSY7v9BW+8Eb0/STeZMEE3Q20WnGm2PlONbmv+4IJ5rGKHYtnhigMgjkdOEDE37p8+Bd6gaLOqFX0DQ==","signatures":[{"sig":"MEUCIFGQjZkASxFnIIJAmwJKamQR1d1tq7yiyGW1muNRcuyCAiEA4dU16TrlI4Nfxf40XE8FmW9S26BEBcA13myyyfBcQdc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260324072307.74a77c4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":38294687},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/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":"74a77c49324b8bbfc44680eabd9e7c7fdd41b33e","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260324072307.74a77c4_1774337021852_0.606875242886495","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260324073519.96f26e0":{"name":"remoteclaw","version":"0.1.0-next.20260324073519.96f26e0","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260324073519.96f26e0","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"40cbdd01a30f28993138961f542f3fd9daaa6ec5","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260324073519.96f26e0.tgz","fileCount":2610,"integrity":"sha512-muqlPh3LJJ1vMQrVhMrUV6Be+t5oFG1QxRx9hngWL7SsPhlr51sdKM/D0Ojmb4+AzxVUv8YivKUxED7HnNvDKA==","signatures":[{"sig":"MEQCID5a7KXYQFuzifVu9/Yat8EsqWqJQwag7mRv/gAtXvlNAiAdLHAtKzj3nRbDCbHMf6iqYdL/LxG/oB5weOJzWlDTwg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260324073519.96f26e0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":38291460},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/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":"96f26e04622fb217c7dfce4d9c181bbe5887a298","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260324073519.96f26e0_1774337753391_0.18641340259990802","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260324093028.d50e024":{"name":"remoteclaw","version":"0.1.0-next.20260324093028.d50e024","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260324093028.d50e024","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"516009400e55729653aa208505dcabef22c6b6eb","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260324093028.d50e024.tgz","fileCount":2613,"integrity":"sha512-w7A7V4fwJSrugkU5T8V4nNXd4K2aer+EolEJxMyXfUSQyuAhak8ksxMHOxTBokfayK1ODOeTEXoDvzioq3vjwQ==","signatures":[{"sig":"MEYCIQD0bDpIijoi4yM92jHG5tnZokJi1UcBi+HlLCpKMRkx3QIhANfqHwIAMl4a8lwJLoglTnfCA8B18oLHmU2wiDC74GXE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260324093028.d50e024","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":38294719},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.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/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.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":"d50e0244953f7f2c78cb3e7b70911c85fb5e577b","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260324093028.d50e024_1774344665196_0.7330140412953841","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260324104236.79e42e2":{"name":"remoteclaw","version":"0.1.0-next.20260324104236.79e42e2","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260324104236.79e42e2","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"53cf1f3ddecadfda4c6a195e3bc547608f4d0242","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260324104236.79e42e2.tgz","fileCount":2616,"integrity":"sha512-EqTciltqV3mQrGInWrenoyMjD9LBw8tezPgA2ot0VI9zQ6U137UKz2beoZgUNNCdQDEJiwWIU0+VH6CbnRV71A==","signatures":[{"sig":"MEYCIQDTEff4Ogbs9pjuAbs7dMgZOx0YaB+czGC7ZcAPlaE0vAIhAJI7vRvwSYs4PXBMRjtPRWFCxSAT5K2m6yT9X/DEvGg+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260324104236.79e42e2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":38308067},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.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/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.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":"79e42e2242300eece18a8ee19059aed685c43f85","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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","uuid":"^11.1.0","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260324104236.79e42e2_1774348987371_0.9265720525376719","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260324110331.005f09f":{"name":"remoteclaw","version":"0.1.0-next.20260324110331.005f09f","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260324110331.005f09f","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"4345fe0f2de56b13f4bd6fae7aa821972ee7b3df","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260324110331.005f09f.tgz","fileCount":2618,"integrity":"sha512-d6/gCdk///R1fMzW34aWCjeGNqfFr2iB/O91mqC6ZwBUVpCF+bXx3Gc4+SBX/+8KYUF/3hQUZzkyNE8ak/QIow==","signatures":[{"sig":"MEUCIFXBift60YxhfBa+iugn5ttR6fpi4lc7Kq280jRYsE4kAiEA43IRB0US5SXPgDh/KsQgmPwgw3USFRpqiFmd2IQixV8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260324110331.005f09f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":38309480},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.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/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.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":"005f09ff1ed46a81f786024ad7ca91e0d7893ee8","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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","uuid":"^11.1.0","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260324110331.005f09f_1774350246341_0.04188897197619146","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260324113222.0fcfd5e":{"name":"remoteclaw","version":"0.1.0-next.20260324113222.0fcfd5e","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260324113222.0fcfd5e","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e27d761972a5c0abacef4b3590f7b88a1cefa0a0","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260324113222.0fcfd5e.tgz","fileCount":2619,"integrity":"sha512-abl2nEGxq7e1MqSTBqyV4kpRSbZBks4j3TmXx3k+gxpCKHGkuSQ7FgwEqt/UG8xKRIZLeiq2lPvQ9bhI2jdxaw==","signatures":[{"sig":"MEUCIQDbO9r47kvY/9XpUg/1+vSKxlptbo0tcOb4oiZZdJbRbAIgDcrXghG76zZjnrF1CuXQiFqufPsWfA+55Le2OGue/lM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260324113222.0fcfd5e","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":38309290},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.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/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.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":"0fcfd5e58697e6e9da1ea58524f5fad0b718327b","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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","uuid":"^11.1.0","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260324113222.0fcfd5e_1774351977878_0.970743234208437","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260324123151.518b8d5":{"name":"remoteclaw","version":"0.1.0-next.20260324123151.518b8d5","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260324123151.518b8d5","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"cda6023157ce563cf432d03e71e57950af7b6236","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260324123151.518b8d5.tgz","fileCount":2609,"integrity":"sha512-TqYJGooCvqvgMmgxpG48PaM6oaHVepG20x3GI3SQ6BF7iLdgLEv006z8YfgFDgkDZg9hFHJrOWcqVZgCLgTh7A==","signatures":[{"sig":"MEYCIQDWjKIHvLL3BYayeW2sA/V68n0+NGFPsSR0HiMOZO/LbQIhAKvZEn9HlpxkiTc8qgyZ0Izpju7RDpQItQ5POEOjeCVH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260324123151.518b8d5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37333821},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.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/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.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/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.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":"518b8d56bb59d0d35de1694b080da641fe231ec8","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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","uuid":"^11.1.0","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260324123151.518b8d5_1774355545106_0.03940939415223155","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260324132649.e886540":{"name":"remoteclaw","version":"0.1.0-next.20260324132649.e886540","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260324132649.e886540","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e8c44d4f8e323b7be2795cee8080ea8675ad76e5","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260324132649.e886540.tgz","fileCount":2637,"integrity":"sha512-V9+WyvfDquLRiEa1d1xJkZug04DMX7TRgGGXBFzGuqrlx1cp+d74NE0wk1B6KN19Ko0cH3snDfH1/mNidU7bFg==","signatures":[{"sig":"MEUCIQDaUioVtjWXhorP/zElQJnQz8IkHTXMgsu6ubXAl5T/6QIgASfCqu+47OKdCMSYFGP+I9UUTpNBJ5U9ElL4sqGTgYI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260324132649.e886540","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37367781},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.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/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.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/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.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":"e8865406b4704116e0d86d59b51533b436c39e56","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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","uuid":"^11.1.0","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260324132649.e886540_1774358844085_0.1525810454394365","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260324140843.590f1cd":{"name":"remoteclaw","version":"0.1.0-next.20260324140843.590f1cd","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260324140843.590f1cd","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"fd1dc0d2f480c42029866bd6896faef56c718e37","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260324140843.590f1cd.tgz","fileCount":2640,"integrity":"sha512-vNm5yIjL65EWfPD08Iv8is0A9szEaTX2YFJOF55F4rTVD0FJpE046L1a3A/tfK3KqFVYuu1XvL3IwahxjwsEqQ==","signatures":[{"sig":"MEUCIAw20upidW1WLAWKVQXdbTG+pccEeyewhhNBG/EtRSF8AiEAoEXBd6iWlAxh4m8sgZOiklFVaGpqDQ3by+sn01DkLzM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260324140843.590f1cd","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37379887},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.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/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.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/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.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":"590f1cd7850dcf03cf3b3f68cca78e7bbd311fff","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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","uuid":"^11.1.0","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260324140843.590f1cd_1774361358140_0.29301143351505576","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260324145657.bafd88e":{"name":"remoteclaw","version":"0.1.0-next.20260324145657.bafd88e","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260324145657.bafd88e","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"7e9b0eb143942739652f4b60df071195734a547d","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260324145657.bafd88e.tgz","fileCount":2647,"integrity":"sha512-G44wQSokoJ6/VUE6lEnw3oJE54JJSF3puKk+yOAqZb5QU56fP2UM0bD1DSHyPE53pgCscWCv/ZA7AnDjM80dMw==","signatures":[{"sig":"MEUCIHuZZKbi5bMdXWS0TtuJw+xlKiHHMA7hUZCum+IvhERVAiEA4p+fWP2FvjlwT836JFQ6tbxjJ38YkU1ii+XGTpK1Hg8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260324145657.bafd88e","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":38385539},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.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/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.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/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.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":"bafd88e3397f903cd07fc97f5d6a3b11b9ddc614","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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","uuid":"^11.1.0","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260324145657.bafd88e_1774364248575_0.37040573520638165","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260324164714.d1b5919":{"name":"remoteclaw","version":"0.1.0-next.20260324164714.d1b5919","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260324164714.d1b5919","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"71ee6ef4f455ceb8bd1dc986e16513d5ca29b6b6","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260324164714.d1b5919.tgz","fileCount":2654,"integrity":"sha512-43wNrVftDyzh6HH4UAFqgnwQ5h4CmBxB385RRTQYKfK+drSI90+sSyi1SHq/yl0sKtvBHn2i4wB1Dw6I7ro8Aw==","signatures":[{"sig":"MEUCIQDCspWSJtukS3VvPAbXOBn7HLdhS3n3vBLe+ImaTp+/iQIgHQDh1eH5fgRe0eh4FdxNRQS6v+1iRYf1kerUAqpyCrc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260324164714.d1b5919","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":38392399},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.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/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.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/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.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":"d1b59199c07ad810b8377c404c9367e8313c4d0c","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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","uuid":"^11.1.0","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260324164714.d1b5919_1774370868906_0.4708403045642371","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260324190831.04fe34b":{"name":"remoteclaw","version":"0.1.0-next.20260324190831.04fe34b","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260324190831.04fe34b","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"0a6f8422ca55083eb9e446cda54cedb9d10f7a70","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260324190831.04fe34b.tgz","fileCount":2690,"integrity":"sha512-hkCfYyOt7RkNsAZv6JBaHY/MvuMS/SH8ld7ZiT5L/pqjtyAjuZeYOcswgEat5dgOUksz4lsdhQqReHByqRPbKg==","signatures":[{"sig":"MEQCID98WxVMYw9ajn0hitvjczB6DIMuHMiV8l6b5X3Uix1gAiAwGmotixe0ip+eaYxmhU1jSjV7086wCzsrU7UvOgRVYQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260324190831.04fe34b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37925636},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.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/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.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/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.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":"04fe34bf67ce04e086ab2b362caade36d8c108af","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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","uuid":"^11.1.0","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260324190831.04fe34b_1774379345774_0.6351445332312273","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260324195810.e14d3b7":{"name":"remoteclaw","version":"0.1.0-next.20260324195810.e14d3b7","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260324195810.e14d3b7","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"8a214144cd9f0163a850f084f62122326400c033","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260324195810.e14d3b7.tgz","fileCount":2697,"integrity":"sha512-qfo9AWbHX6LbrkRCZb7mLS4mB+TjYuuN1NXjPFf3NXGlstNrCu6tls4Tk0G6tg9cGWmspF4Dw4/TtEC6yciShg==","signatures":[{"sig":"MEYCIQCNDhuQ0nIBcbMoIVCpo26Dbasz4OYo/2eKiBPoQK5o/QIhALjISEdlur3ogDAQzgJ7PAUDQ3c0rYKooPcBSbLUn1wr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260324195810.e14d3b7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37950822},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.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/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.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/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.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":"e14d3b70e4a0aab6e937260bd10213708a14e926","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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","uuid":"^11.1.0","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260324195810.e14d3b7_1774382324092_0.17749989459698323","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260324223756.f859c0f":{"name":"remoteclaw","version":"0.1.0-next.20260324223756.f859c0f","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260324223756.f859c0f","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"ad9e0953d0a6007113c716f78d0e816820e6a13f","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260324223756.f859c0f.tgz","fileCount":2702,"integrity":"sha512-9lMdiT7Cbqesa45UqmJzFRTw2SM5w58UuPrdfRGJFLqk/sQ2Ei/T3BVvi2WFxaQb2QaxtBLMsW2We8qRsqCItQ==","signatures":[{"sig":"MEYCIQCQ/b0ki9cxmEO2e2qacyYEQX05CIG4/GiwNhMwhn3oKAIhAPTZ+5seFIlZQomlCrg2nLY89dO04lEevTcMiPkSMfNK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260324223756.f859c0f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":38956161},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.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/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.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/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.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":"f859c0fd2baa2ed819901d90a399d3654865860b","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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","uuid":"^11.1.0","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260324223756.f859c0f_1774391915467_0.8087456616682571","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260324233217.52e32a8":{"name":"remoteclaw","version":"0.1.0-next.20260324233217.52e32a8","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260324233217.52e32a8","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"1aab4633aef3f8d0ee0af758712e3b22c9011e68","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260324233217.52e32a8.tgz","fileCount":2698,"integrity":"sha512-wk1fvFq0VvWJPrsHs+wJNzersOj7D2DnpgniQr0T5mUg8fj4+SZTNVBOdKi7bZyEIcBk/U2shY9OlmkU4MPnsQ==","signatures":[{"sig":"MEQCIBQ8BtwJElasTWIeZYUkLeJ0nFOOxiqAQeN04zR2QhRGAiBFkHWcbt310c6sqVNYICJkoei3U9Db/JXxLO5WOJ/DVw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260324233217.52e32a8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37957761},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.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/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.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/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.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":"52e32a8044910fb168b7e27e53623f9b43159b70","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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","uuid":"^11.1.0","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260324233217.52e32a8_1774395169991_0.30106959162880287","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260325003725.0f8c544":{"name":"remoteclaw","version":"0.1.0-next.20260325003725.0f8c544","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260325003725.0f8c544","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"0806a3ea3cc10d225035bc1d6c0afea8f5fd8896","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260325003725.0f8c544.tgz","fileCount":2703,"integrity":"sha512-HTCKIeQ/wcLjI7dG6lKd9RLebFt7Yd3atWyCfMVSiL/CLGODDU+baTuWRXgAq/OG4GfU7dxWzEr1KM4KxsS/dQ==","signatures":[{"sig":"MEUCIBc390o2X6AFeWPQ03EiNwHf0hjc2iWGj5W3eCYjUh1OAiEA0Kv/PlExYmEZXfoM1YPxqMjLfoGLbI1ULCsEo0IF254=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260325003725.0f8c544","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":38961241},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.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/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.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/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.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":"0f8c5444c8c0483b07000a741b6a11b5059b331b","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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","uuid":"^11.1.0","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260325003725.0f8c544_1774399079804_0.33332660422553184","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260325025809.9b17145":{"name":"remoteclaw","version":"0.1.0-next.20260325025809.9b17145","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260325025809.9b17145","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"25cd98bf29405cb4a9d5f49a6ff8fa7e17128ab8","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260325025809.9b17145.tgz","fileCount":2698,"integrity":"sha512-KmUi+oee3qDncrYepIQdiDkrkXhF6lyKTt0aBmzN9AxI+forUAD36PXjMEfuk7iMafqQ9vmx13RbFyuRhMM/1w==","signatures":[{"sig":"MEUCICc2um98CYH9AMPRzkDu2KzV5oeJAIJy4cNv4kCdB986AiEAkHPoCW0K2tMlFMeIvjBI0/ikXjaOgNsLNyHbZDypKKQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260325025809.9b17145","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":38001370},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.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/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.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/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.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":"9b1714557b7ebbced57e37b5ff4130c2953ef9eb","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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","uuid":"^11.1.0","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260325025809.9b17145_1774407523567_0.20690642197005138","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260325043517.32b941d":{"name":"remoteclaw","version":"0.1.0-next.20260325043517.32b941d","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260325043517.32b941d","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"a9f9d2dd84b88c0edfe3e6459b5f4f4e7dbe50c4","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260325043517.32b941d.tgz","fileCount":2724,"integrity":"sha512-vuAuPL7+B5qyEDOsxHgf+dJ+IZubrMFolWx+crep4dtJKw5DI+kCSggDvhS036QeTzXbgUFTUjldXiwjQq1Y9w==","signatures":[{"sig":"MEUCIGRLhtDJ8DMWvGF8VIVEAiaE3ZQFO4TgmNGkUzoCmplYAiEA8QjNFYY1VcskINiNrPBtOarIlPID7Zwmq/LEmiYdRUU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260325043517.32b941d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":39032709},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.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/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.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/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.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":"32b941d7c4f0ad3b4435a1540a23b9d921de5f00","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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","uuid":"^11.1.0","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260325043517.32b941d_1774413352592_0.5469436071131388","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260325053809.45b5cbf":{"name":"remoteclaw","version":"0.1.0-next.20260325053809.45b5cbf","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260325053809.45b5cbf","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"285c2f68cac0d7af1edf31edf30faa668731626e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260325053809.45b5cbf.tgz","fileCount":2735,"integrity":"sha512-csFmVo7JeDC566Ewy1DB2279LYhMvD+NTS3yKGv6hzWfmQlT/clVydFean7tSCWpa+csFqyc5mYE0xRInFHrfw==","signatures":[{"sig":"MEUCIQCzXnE5CpEva94T0SZymWaxiwihWpqFM/WNJUgMJXv7NQIgeQ37RtCcgZSn0PnxMJdeNCrqBbxiWEmjvsVtaxYjcII=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260325053809.45b5cbf","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":38060514},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.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/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.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/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.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":"45b5cbf9f82eee145d49d101b8bd16e2e34c7072","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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","uuid":"^11.1.0","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260325053809.45b5cbf_1774417125707_0.8970613780871095","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260325062055.293b096":{"name":"remoteclaw","version":"0.1.0-next.20260325062055.293b096","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260325062055.293b096","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"7ac6ef0584bfa0bd7631b4c80d34c37cf9ebca00","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260325062055.293b096.tgz","fileCount":2744,"integrity":"sha512-FaLid9e6Ige+DHvgbQxKG15bE9JFn2M1s9Z5vE3QWLe7FMDMyCc/kNf3xR9j3XYMCEgPJLw0MaWdottqCQ44EQ==","signatures":[{"sig":"MEUCIDDb7GTiDZyGKLhdk/KmaE1NE+GHUtDb99k4Oj89NLL/AiEA0XlaAjXdpOQu50gz/5D6F27JAlTXJgeG6mgjDaaWH1I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260325062055.293b096","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":38141923},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.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/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.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/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.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":"293b096745ee79de9e591f512dbca4b255c5c371","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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","uuid":"^11.1.0","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260325062055.293b096_1774419690251_0.721697938251469","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260325071011.b459e61":{"name":"remoteclaw","version":"0.1.0-next.20260325071011.b459e61","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260325071011.b459e61","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"0be8648a5805895a17230fddd6489bbc08eb38e4","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260325071011.b459e61.tgz","fileCount":2753,"integrity":"sha512-BEZ7BsnDzjX4VISj/km/RiWUEL2s6XE5aZLc3UsXheUf7DcBWmPjloEg6K5+LxK8kyNGGcQvyxuVSHkshDNczA==","signatures":[{"sig":"MEUCIQCXsbBtZaxCd/h6Qu73Ia+o6H4XHbxepa1Yc1XrbJabSQIgWFwx7/7br4SAkWmWGJ0/Sn0yqJN989zotbLdFu00UEs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260325071011.b459e61","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":39147735},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.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/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.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/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.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":"b459e61d9424fbc4992670ddfba06a8858f940aa","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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","uuid":"^11.1.0","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260325071011.b459e61_1774422647366_0.16610146917572477","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260325095642.ce4ee00":{"name":"remoteclaw","version":"0.1.0-next.20260325095642.ce4ee00","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260325095642.ce4ee00","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"b622594b343fbee98151957f41ac3418f08ed5fd","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260325095642.ce4ee00.tgz","fileCount":2830,"integrity":"sha512-ST+SDywIQQau3giqh+lMpGf6b0ZNX8m0RBjBIiUzWVyUPMlAP0B//VgtptBsNaRLqoyYcAJasX6eJHXahUZkgQ==","signatures":[{"sig":"MEYCIQCD5O0gQIE6qlZis7iQvae+8JxiVSXrCIAFC1xLONpatQIhALgN7YF/iURFmf+OxGUSOMZfAcfBCI1G+bHdCwKHVYMb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260325095642.ce4ee00","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":49769295},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.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/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.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/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.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":"ce4ee00f39705bec8ca0d2119c1d87a4dec35c94","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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","uuid":"^11.1.0","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260325095642.ce4ee00_1774432635765_0.3830001248834296","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260325121433.de7dcc3":{"name":"remoteclaw","version":"0.1.0-next.20260325121433.de7dcc3","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260325121433.de7dcc3","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"821d2f1cd91d822521e78d146897e2e719af8fe3","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260325121433.de7dcc3.tgz","fileCount":2821,"integrity":"sha512-tf4F8cxMQndRn0Jb5Ie+rZbGHLGP1Z3VejB18M1wKn7Pb1LkAUhNt5fiQcndYu3NeSRQAWND3UWfJgR3SykK7w==","signatures":[{"sig":"MEQCIGj/Xv2FSyGOmRqIe52BwIUEtS6FVBOKWx0amPamA1ydAiAeF23ryJa6wH5CN72QYy3QBQ+Z3Shr0d1Sopp/Hy+L9w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260325121433.de7dcc3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":47815823},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.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/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.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/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.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":"de7dcc331b061b74a367b7d56ac93feecdf08eaa","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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","uuid":"^11.1.0","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260325121433.de7dcc3_1774440908617_0.5062987666210232","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260325130050.edd186e":{"name":"remoteclaw","version":"0.1.0-next.20260325130050.edd186e","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260325130050.edd186e","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"b231b224f2f53ebcba513993b8aa0db60ad17e4c","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260325130050.edd186e.tgz","fileCount":2821,"integrity":"sha512-SY8WYtzyz2QbbZuO9/GtAEX9wJmu+dmUcX0+zdYMqcTX/Ll1OnebX/0HXOQoLV39Mbq3SA4ZN91SFMW0SbyaWA==","signatures":[{"sig":"MEUCIQCAqStBGqs+6+ICJtH9TdZvOLxY5G8kpIMAPZSjvpJK6wIgAhGrDMD3qTpKBhtXk1GGCIhAmrmUyPdS0pwDmIIh5CE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260325130050.edd186e","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":47812998},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.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/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.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/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.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":"edd186ef016946dc146546cb6cdbf1f280bc8cef","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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","uuid":"^11.1.0","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260325130050.edd186e_1774443688905_0.8265165520466051","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260325134003.1f974ed":{"name":"remoteclaw","version":"0.1.0-next.20260325134003.1f974ed","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260325134003.1f974ed","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"dfa2ca9656242057c0c0e598b50a2599c89b430e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260325134003.1f974ed.tgz","fileCount":2830,"integrity":"sha512-OsAEEPOzaUwLUJUDxfG12eVEWSzRH5IHtrJXnx8flX5p2gukT9dp+Z6B5bJssot2zYS+WWtl0Q5NEW5JmB5O9g==","signatures":[{"sig":"MEYCIQDjzvQJ9NZQ6reWSXB9/yO8lQO0+afcvtD1ga9nLv+tGgIhALbTu8+Nzpj2po9/UQbw7crtB20SyWc/QSPwyzXGzkut","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260325134003.1f974ed","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":49787445},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.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/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.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/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.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":"1f974ed38d06805364fa843b50f80bf52636dab6","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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","uuid":"^11.1.0","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260325134003.1f974ed_1774446039603_0.5116044177385368","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260325153227.e64be55":{"name":"remoteclaw","version":"0.1.0-next.20260325153227.e64be55","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260325153227.e64be55","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"24dcc3a3290f099500e7c8cd95e0a51e160587ae","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260325153227.e64be55.tgz","fileCount":2833,"integrity":"sha512-G29zLUltmIkGghsEi0sY2+DuiOsDXo/uEV3NpzsQbTRW+jy0vBTLhV7Tadie09p6wIW4vHyRad2Rr+RDJqrLoA==","signatures":[{"sig":"MEYCIQDouENnupCMN5wvpBeBn5o4UqBHEt5PikpXxf/TlaB13wIhAJaGAls4hHL/2u2jge4/zp4HL+vylWYDt73J1y/qfFuG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260325153227.e64be55","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":49890764},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.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/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.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/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.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":"e64be55c4aee7317d52423ffb824433a0d6d5cfc","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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","uuid":"^11.1.0","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260325153227.e64be55_1774452783277_0.48167056624057825","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260325161016.4a995a2":{"name":"remoteclaw","version":"0.1.0-next.20260325161016.4a995a2","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260325161016.4a995a2","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"470819d43631ac2ef18d27fbf10c0b0709865cfb","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260325161016.4a995a2.tgz","fileCount":2832,"integrity":"sha512-L+EvSUgFAKP3XqO7svctQDwQCyCOU1+J+/35wW8WCet3pw9yrDNENEqVv9qYp+IXiMt2yVVwaPNu85jemyBzHA==","signatures":[{"sig":"MEUCIQDhfMZlh6kTp5QmqYljKQKBlrwAo3owTRqB17HzFNDGoQIge0vcBtIEJhS0aGTNVDtW6ujFspUxKpuexM5E5hKYFjw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260325161016.4a995a2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":49970511},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.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/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.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/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.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":"4a995a2111cd737c02f66c2937a0a5e2415d2f90","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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","uuid":"^11.1.0","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260325161016.4a995a2_1774455052434_0.616385735179477","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260325191154.117dffb":{"name":"remoteclaw","version":"0.1.0-next.20260325191154.117dffb","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260325191154.117dffb","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"1d8d9883c9237e73ea1eece524fbcd6be7411cc6","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260325191154.117dffb.tgz","fileCount":2832,"integrity":"sha512-8BJPQ0/XPGxtIUfQH8lNjXB//dh4RRHTd3jvI0UD6pF5ZDLEkwdOvDLKiNop4eTIMIzjVXqTY6lI4gUhQ8ab/Q==","signatures":[{"sig":"MEUCIHndgQsmmlkPkumPsUZ17LEqixEg70a5gcco2+UA5y+iAiEAoeoZsj2uzjqYVDCrb/oKpODui0iUeNSWXWoa8M+Qxb0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260325191154.117dffb","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":49970639},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.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/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.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/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.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":"117dffb99b036ec40312eac0d1b0fd14f059f42f","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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","uuid":"^11.1.0","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260325191154.117dffb_1774465949617_0.7848289076663304","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260325194505.dc15534":{"name":"remoteclaw","version":"0.1.0-next.20260325194505.dc15534","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260325194505.dc15534","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"5c52309aee867dc04a0d884bf17ed892327c27f9","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260325194505.dc15534.tgz","fileCount":2832,"integrity":"sha512-WIB+fA1ou1Se7bG+tMhJ8h2pLX9jTN5621fiGLk2P7y43nDj6Q37kuXahmJU8dRvqZVQC0gLWlmBGChn0cm0wA==","signatures":[{"sig":"MEQCIF2VIYXosbndRObNz29Fg/4+9zkYS1qc7lJry4HaomInAiBy8jljpmmt6dHG7aJIqLxMz3qp4/dCJGmi2Nq1o/vjDw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260325194505.dc15534","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":49971171},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.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/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.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/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.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":"dc1553461faa5f14d58d200ec9678117b3cd98d3","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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","uuid":"^11.1.0","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260325194505.dc15534_1774467942670_0.10210463529106906","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260325223558.a2277e3":{"name":"remoteclaw","version":"0.1.0-next.20260325223558.a2277e3","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260325223558.a2277e3","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"ff096ae58bc027619c577649686eda3f9617e7c5","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260325223558.a2277e3.tgz","fileCount":2832,"integrity":"sha512-4y3W3otfAj0237cFyLwULqKWOHCR8LYLuHdOJKB9imj1rc1mdpbp3IygCkckYNk3bFZ6pVJf/RSDTWL/Y66hjQ==","signatures":[{"sig":"MEQCIB64l80XFT3abJMms1eaCV34euqERtit8gKeZhChmjOTAiAttYFv2YRrCnLDqYEQk/Q68EZR4fx98MENR/8kew+oDg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260325223558.a2277e3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":49992789},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.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/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.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/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.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":"a2277e383d15e7f7324784e4abba0bafdad3e0bb","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","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":"REMOTECLAW_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: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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"22.22.1","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","uuid":"^11.1.0","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260325223558.a2277e3_1774478194323_0.9043030390553204","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260325231609.3bb43bd":{"name":"remoteclaw","version":"0.1.0-next.20260325231609.3bb43bd","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260325231609.3bb43bd","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"950ee290c4011ca1e648b5a78757e49680af8f49","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260325231609.3bb43bd.tgz","fileCount":2823,"integrity":"sha512-9Ia45AqXXRtIWWAD+pjfYRIm9/ktiFmPlaiyXut/LObCJUIo8q2DCa32o/NwUfJU8QHUyYiXcHpl+xUcTYIo/g==","signatures":[{"sig":"MEUCIQC2zb4HS1dxhj9oyvyw3Ms+wiHJZQk0fJDDxhEeJUdkBQIgas/ijG5vLCdihp9CnvhZg0oUHbMrsnmhRphzsZSL0UM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260325231609.3bb43bd","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48014140},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.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/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.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/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.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":"3bb43bd4ed2fe001cd89fbc6a4de9ac4b5476322","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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","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":"REMOTECLAW_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","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: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: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","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","release:plugins:npm:plan":"node --import tsx scripts/plugin-npm-release-plan.ts","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: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":"REMOTECLAW_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","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","lint:webhook:no-low-level-body-read":"node scripts/check-webhook-auth-body-order.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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.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","uuid":"^11.1.0","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260325231609.3bb43bd_1774480600800_0.35888398833287827","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260326013022.70001a6":{"name":"remoteclaw","version":"0.1.0-next.20260326013022.70001a6","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260326013022.70001a6","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"899d5a14178a6ce01c945ff459b1dacbfb543397","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260326013022.70001a6.tgz","fileCount":2826,"integrity":"sha512-dZIdS28VtI9YQtCtGBBL5ewKHzUinVSK/Pms1icePhA8m/Bh2p0esFyfbEeC94j9SWfEZzp81ofG+eBiTeT4vg==","signatures":[{"sig":"MEQCIGlbnYS4ehl7iUYX0wSRHPAM3TaK45B2zRaQuLGktvmDAiBYo3Ll5fuNOUtnFLZjI0J7szA2Bb79oTQ57dj6ofJyrQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260326013022.70001a6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48042557},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.16.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.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/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.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/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.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":"70001a65e4fd91a18e79ff428f1faa730d313b85","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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","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":"REMOTECLAW_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","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: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: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","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","release:plugins:npm:plan":"node --import tsx scripts/plugin-npm-release-plan.ts","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: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":"REMOTECLAW_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","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","lint:webhook:no-low-level-body-read":"node scripts/check-webhook-auth-body-order.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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.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","uuid":"^11.1.0","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260326013022.70001a6_1774488664967_0.6481410486848236","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260326040618.600aa0e":{"name":"remoteclaw","version":"0.1.0-next.20260326040618.600aa0e","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260326040618.600aa0e","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"eedeed3028788dbc34752b0270b4eb6c46a78f0e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260326040618.600aa0e.tgz","fileCount":2826,"integrity":"sha512-14BDqHLatRH4bNcW1yAgctJPM5eE9RU3U0U85WiQvAjwPu7tX0lwRdSigxMRv3WQgmPAvGG3zhyC34b/GQY7Mg==","signatures":[{"sig":"MEUCIQCVwf2BfsEOX1KI2Nu5scYRxoJmR2N5iicb+GSc0dRwSwIgL42VEyiutwAtt7qRNZ+UEAAW21NS/6F5g6MsMPlnXMU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260326040618.600aa0e","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48042700},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.16.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.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/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.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/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.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":"600aa0e5a972cb9c4c0c3728cb30d7bd05433f3f","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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","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":"REMOTECLAW_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","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","docs:spellcheck:fix":"bash scripts/docs-spellcheck.sh --write","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","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","release:plugins:npm:plan":"node --import tsx scripts/plugin-npm-release-plan.ts","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: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":"REMOTECLAW_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","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","lint:webhook:no-low-level-body-read":"node scripts/check-webhook-auth-body-order.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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.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","uuid":"^11.1.0","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260326040618.600aa0e_1774498013951_0.4223194730063844","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260326065034.ae489f0":{"name":"remoteclaw","version":"0.1.0-next.20260326065034.ae489f0","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260326065034.ae489f0","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"fc9c351264c4426179d01321558c379784dd1ff5","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260326065034.ae489f0.tgz","fileCount":2826,"integrity":"sha512-rnUIlki3NSb7Uaul6IkrHvhS+rXFseEKLrqAubJVxxg6yK0/rsQA2mezHv3jRqeKWYDIUYcKW1Sb3TsByIB8rA==","signatures":[{"sig":"MEYCIQDhbspkK5SBzbaNVNg+3PHL1biPXiY2vpB5Pb9EppcHPwIhAPBE3oyIVv4Ha8u/pzcydsdfniIWjtn+5pUZiz7Sczyb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260326065034.ae489f0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48044233},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.16.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.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/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.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/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.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":"ae489f062f8fec3dd52c68767026820450a73f34","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","land:gate":"pnpm install --frozen-lockfile --prefer-offline --ignore-scripts=false --config.engine-strict=false --config.enable-pre-post-scripts=true --config.side-effects-cache=true && pnpm check && pnpm build && pnpm test && pnpm release:check","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app: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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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","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":"REMOTECLAW_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","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","docs:spellcheck:fix":"bash scripts/docs-spellcheck.sh --write","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","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","release:plugins:npm:plan":"node --import tsx scripts/plugin-npm-release-plan.ts","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: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":"REMOTECLAW_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","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","lint:webhook:no-low-level-body-read":"node scripts/check-webhook-auth-body-order.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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.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","uuid":"^11.1.0","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260326065034.ae489f0_1774507866391_0.8824506284784848","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260326100040.b5998b1":{"name":"remoteclaw","version":"0.1.0-next.20260326100040.b5998b1","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260326100040.b5998b1","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"a8bfe9b2e0ed4a694a46c869b80768505d38a646","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260326100040.b5998b1.tgz","fileCount":2835,"integrity":"sha512-kxUlhJhsh47/M+JOUSpqY2vu7aXm8YS2gD4+HbQlEVGby+3LOgfiw1sx1gg+v9FtI9mqDOe2zXCEZpLFkVQJ6g==","signatures":[{"sig":"MEUCIQDi7UK2H3Z5D0gZClDZCahUc/uBAx/FmmH6gubW/aRCIwIgdcLkXsHp+6yn2/+Y3beSnxiFII9ZPHl+UbtrsD3uQ5M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260326100040.b5998b1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50022007},"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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.16.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.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/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.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/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.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":"b5998b185915d87b24344b4ae6a9163724803d03","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","land:gate":"pnpm install --frozen-lockfile --prefer-offline --ignore-scripts=false --config.engine-strict=false --config.enable-pre-post-scripts=true --config.side-effects-cache=true && pnpm check && pnpm build && pnpm test && pnpm release:check","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app:ktlintCheck","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check --threads=1","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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","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":"REMOTECLAW_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","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","docs:spellcheck:fix":"bash scripts/docs-spellcheck.sh --write","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","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","release:plugins:npm:plan":"node --import tsx scripts/plugin-npm-release-plan.ts","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: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":"REMOTECLAW_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","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","lint:webhook:no-low-level-body-read":"node scripts/check-webhook-auth-body-order.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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.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","uuid":"^11.1.0","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260326100040.b5998b1_1774519273149_0.6498074932116253","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260326121358.0fdf967":{"name":"remoteclaw","version":"0.1.0-next.20260326121358.0fdf967","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260326121358.0fdf967","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"27851d5d7dd8be23336d4bb1ed84970a7881c1ac","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260326121358.0fdf967.tgz","fileCount":2835,"integrity":"sha512-Sar2JmObCYpJQuNxZNLwxHCGNzGgPS2JDxctniBaC6OkeXx0X+CKqtQUHaQPzBuJ0N7kWEOKCnGK+IXEzPlhvA==","signatures":[{"sig":"MEYCIQDnoCUROPKp11+7K0MACFAGdNg2DhQS6TqNiR8GKsi2/QIhAPGPN0gqDsLvuCUHfnyo0F6qYQsZ6eu5u8tsqkwOjeIG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260326121358.0fdf967","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50956334},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.10","hono":"4.12.5","yauzl":"3.2.1","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.16.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.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/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.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/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.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":"0fdf967791c8b8ee7e4da7eedb9b3e04f47cc746","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 && pnpm check:base-config-schema","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","land:gate":"pnpm install --frozen-lockfile --prefer-offline --ignore-scripts=false --config.engine-strict=false --config.enable-pre-post-scripts=true --config.side-effects-cache=true && pnpm check && pnpm build && pnpm test && pnpm release:check","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app:ktlintCheck","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check --threads=1","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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":"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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","test:contracts":"pnpm test -- src/channels/plugins/contracts src/plugins/contracts","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:installDebug","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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","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: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:extensions:memory":"node scripts/profile-extension-memory.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","check:base-config-schema":"node --import tsx scripts/generate-base-config-schema.ts --check","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","release:plugins:npm:plan":"node --import tsx scripts/plugin-npm-release-plan.ts","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: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":"REMOTECLAW_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","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","lint:webhook:no-low-level-body-read":"node scripts/check-webhook-auth-body-order.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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.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","uuid":"^11.1.0","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260326121358.0fdf967_1774527271373_0.42517671827914105","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260326153134.3ce32e2":{"name":"remoteclaw","version":"0.1.0-next.20260326153134.3ce32e2","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260326153134.3ce32e2","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"773a769c65f4c6260a6eadbc0c36815cda785b95","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260326153134.3ce32e2.tgz","fileCount":2826,"integrity":"sha512-JxIydVhCgcc2KfkyjhHldMrZyQYfltWB7mzhcAj2+2sStl2fkr5knOMMzn84rCciTyTIAbj0WVFTh+Rs2KkvRA==","signatures":[{"sig":"MEYCIQDnuITBeXqsujgiPQRwYyg/1GFlMq/IZMZYCvtc1rXPCwIhALdV4Se+X26mnSzSnOYe3TYurEJr9F9Cdihbss8ZxeMa","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260326153134.3ce32e2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":49008412},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.10","hono":"4.12.5","yauzl":"3.2.1","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.16.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.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/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.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/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.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":"3ce32e26da1da616e785c16a12c37cb646b36109","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 && pnpm check:base-config-schema","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","land:gate":"pnpm install --frozen-lockfile --prefer-offline --ignore-scripts=false --config.engine-strict=false --config.enable-pre-post-scripts=true --config.side-effects-cache=true && pnpm check && pnpm build && pnpm test && pnpm release:check","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app:ktlintCheck","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check --threads=1","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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":"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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","test:contracts":"pnpm test -- src/channels/plugins/contracts src/plugins/contracts","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:installDebug","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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","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: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:extensions:memory":"node scripts/profile-extension-memory.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","check:base-config-schema":"node --import tsx scripts/generate-base-config-schema.ts --check","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","release:plugins:npm:plan":"node --import tsx scripts/plugin-npm-release-plan.ts","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: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":"REMOTECLAW_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","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","lint:webhook:no-low-level-body-read":"node scripts/check-webhook-auth-body-order.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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.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","uuid":"^11.1.0","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260326153134.3ce32e2_1774539127646_0.3871945452789727","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260327092010.fceafa1":{"name":"remoteclaw","version":"0.1.0-next.20260327092010.fceafa1","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260327092010.fceafa1","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"89ac3252faf87fdefbb02eb9642710bf2b1af9a9","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260327092010.fceafa1.tgz","fileCount":2826,"integrity":"sha512-6RgspZHAc9f5alWJyC7cdhdIZWlYu65lClhrTshUJVchFTZiU0APgpVr4DONiXJWPftrIJTAlquT9TPMQhaR0A==","signatures":[{"sig":"MEUCICto6MY7GHq+Vayw1mpATwWVHbl+KIseoK33pdWVFvK6AiEAsmAr+WfvHrtJr4IXP7TrcOgOSHFd86QsuxcvCRJxoHE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260327092010.fceafa1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":49007055},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.10","hono":"4.12.5","yauzl":"3.2.1","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.16.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.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/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.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/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.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":"fceafa1cf9abd6b97724d7a2bdcabffbacd1f1b4","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 && pnpm check:base-config-schema","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","land:gate":"pnpm install --frozen-lockfile --prefer-offline --ignore-scripts=false --config.engine-strict=false --config.enable-pre-post-scripts=true --config.side-effects-cache=true && pnpm check && pnpm build && pnpm test && pnpm release:check","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app:ktlintCheck","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check --threads=1","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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":"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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","test:contracts":"pnpm test -- src/channels/plugins/contracts src/plugins/contracts","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:installDebug","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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","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: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","android:bundle:release":"bun apps/android/scripts/build-release-aab.ts","test:extensions:memory":"node scripts/profile-extension-memory.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","check:base-config-schema":"node --import tsx scripts/generate-base-config-schema.ts --check","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","release:plugins:npm:plan":"node --import tsx scripts/plugin-npm-release-plan.ts","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: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":"REMOTECLAW_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","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","lint:webhook:no-low-level-body-read":"node scripts/check-webhook-auth-body-order.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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.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","uuid":"^11.1.0","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260327092010.fceafa1_1774603242632_0.8053753396975201","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260327122355.be245d6":{"name":"remoteclaw","version":"0.1.0-next.20260327122355.be245d6","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260327122355.be245d6","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"c3f8f0f4803eb24bd716db88cdf170867eedcee3","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260327122355.be245d6.tgz","fileCount":2836,"integrity":"sha512-CAcb2iWt8g/zFu6WTys1zSoXnFO+CQuYxXxo67KlErJKYL00cZ5/Cn2k0z7D1uvGlw6YrGl+CDWilB60yIHowQ==","signatures":[{"sig":"MEUCIDjmwBsSTjzMfVv12P+SDvDLOD5LZDfIkEivy4lPQdoEAiEA859bRpjjwXy24aA+KcRXY5S6EMdTOsbXD6yoGHK9/Mw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260327122355.be245d6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50893204},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.10","hono":"4.12.5","yauzl":"3.2.1","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.16.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.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/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.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/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.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":"be245d617cfa26a15983fbc22af8af82ddf2934c","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 && pnpm check:base-config-schema","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","land:gate":"pnpm install --frozen-lockfile --prefer-offline --ignore-scripts=false --config.engine-strict=false --config.enable-pre-post-scripts=true --config.side-effects-cache=true && pnpm check && pnpm build && pnpm test && pnpm release:check","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app:ktlintCheck","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check --threads=1","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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":"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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","test:contracts":"pnpm test -- src/channels/plugins/contracts src/plugins/contracts","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:installDebug","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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","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: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","android:bundle:release":"bun apps/android/scripts/build-release-aab.ts","test:extensions:memory":"node scripts/profile-extension-memory.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","check:base-config-schema":"node --import tsx scripts/generate-base-config-schema.ts --check","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","release:plugins:npm:plan":"node --import tsx scripts/plugin-npm-release-plan.ts","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: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":"REMOTECLAW_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","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","lint:webhook:no-low-level-body-read":"node scripts/check-webhook-auth-body-order.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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.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","uuid":"^11.1.0","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260327122355.be245d6_1774614266807_0.7746418310396026","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260327124440.c95ba7b":{"name":"remoteclaw","version":"0.1.0-next.20260327124440.c95ba7b","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260327124440.c95ba7b","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"9661120b6e315e4a5c63bfc688a53e7762ec5df2","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260327124440.c95ba7b.tgz","fileCount":3088,"integrity":"sha512-QQMWg8DYYqvAnLezYOsvfYUV/2NYOq3Ac7HKA+tu0eT4ZT0gJ2C4W23JnBbwOiExkr7JVlHhR5ToDCyOejVPBQ==","signatures":[{"sig":"MEYCIQDUPz/svHobkVpA+7opM+Oo0EPFuUwJa1rt6Z+qEaMiLwIhAKtqEvmJ91DqivuVi5whS+Q84T12H6ENIn56ZHXls9N1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260327124440.c95ba7b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":54297558},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.10","hono":"4.12.5","yauzl":"3.2.1","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.16.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.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/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.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/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.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":"c95ba7bde0d2f05aa3c415183206649fa4a3a225","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: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 && pnpm check:base-config-schema","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","land:gate":"pnpm install --frozen-lockfile --prefer-offline --ignore-scripts=false --config.engine-strict=false --config.enable-pre-post-scripts=true --config.side-effects-cache=true && pnpm check && pnpm build && pnpm test && pnpm release:check","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app:ktlintCheck","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check --threads=1","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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":"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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","test:contracts":"pnpm test -- src/channels/plugins/contracts src/plugins/contracts","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:installDebug","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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","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: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","android:bundle:release":"bun apps/android/scripts/build-release-aab.ts","test:extensions:memory":"node scripts/profile-extension-memory.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","check:base-config-schema":"node --import tsx scripts/generate-base-config-schema.ts --check","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","release:plugins:npm:plan":"node --import tsx scripts/plugin-npm-release-plan.ts","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: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":"REMOTECLAW_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","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","lint:webhook:no-low-level-body-read":"node scripts/check-webhook-auth-body-order.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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.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","uuid":"^11.1.0","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260327124440.c95ba7b_1774615511298_0.05983128764718715","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260327132700.021e8e3":{"name":"remoteclaw","version":"0.1.0-next.20260327132700.021e8e3","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260327132700.021e8e3","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"3d06295cc66da556022e41826af37e28efa6aafd","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260327132700.021e8e3.tgz","fileCount":2650,"integrity":"sha512-zP2vVu/SvNQKNPszYGZLYNbd6dPbIVR8EGtkKkfZf17pDyuVWj6nvrI8X5I/arnY7DZ2h7fuJsShaf+ohADbLg==","signatures":[{"sig":"MEUCIBI1tst84ZEpg8Q5VXZAjal5UuAMDIQU0wKBM0J7I2WIAiEA95PZolqSfZYFcFeqtBxmo0WmKPuquFKSAaByrboI60o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260327132700.021e8e3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24482062},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.10","hono":"4.12.5","yauzl":"3.2.1","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.16.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.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/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.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/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.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":"021e8e38718b1c0d0562af5a2354f0c64e5d5431","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: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 && pnpm check:base-config-schema","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","land:gate":"pnpm install --frozen-lockfile --prefer-offline --ignore-scripts=false --config.engine-strict=false --config.enable-pre-post-scripts=true --config.side-effects-cache=true && pnpm check && pnpm build && pnpm test && pnpm release:check","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app:ktlintCheck","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check --threads=1","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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":"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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","test:contracts":"pnpm test -- src/channels/plugins/contracts src/plugins/contracts","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:installDebug","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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","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: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:macos":"bash scripts/e2e/parallels-macos-smoke.sh","android:bundle:release":"bun apps/android/scripts/build-release-aab.ts","test:extensions:memory":"node scripts/profile-extension-memory.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","check:base-config-schema":"node --import tsx scripts/generate-base-config-schema.ts --check","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","release:plugins:npm:plan":"node --import tsx scripts/plugin-npm-release-plan.ts","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: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":"REMOTECLAW_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","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","lint:webhook:no-low-level-body-read":"node scripts/check-webhook-auth-body-order.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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.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","uuid":"^11.1.0","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260327132700.021e8e3_1774618047205_0.19451420538727948","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260327145736.0ea2438":{"name":"remoteclaw","version":"0.1.0-next.20260327145736.0ea2438","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260327145736.0ea2438","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f008906f815f7c8918714b7c90ad7dba13ed6ef6","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260327145736.0ea2438.tgz","fileCount":2652,"integrity":"sha512-xaMMcTn9WqPBhwi+Gxkp2x6ELvKQmCTp9A5Ml0qsHtsMiteb1Xvqt9l3N8RltGAOavanQH7CBlpGtQmCJ3Z/Fg==","signatures":[{"sig":"MEUCIAqNFHNcYC2OS3IlMm9dTpOat6tOc8RRXmj1KRYih8VpAiEA+DvGmjmK0CQpSosHcVzYUlIzgkVNJfVqu41NQvEuCyE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260327145736.0ea2438","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24487769},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.10","hono":"4.12.5","yauzl":"3.2.1","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.16.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.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/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.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/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.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":"0ea2438d084b6f636221a54fc3c1d8231bfd01b7","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: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 && pnpm check:base-config-schema","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","land:gate":"pnpm install --frozen-lockfile --prefer-offline --ignore-scripts=false --config.engine-strict=false --config.enable-pre-post-scripts=true --config.side-effects-cache=true && pnpm check && pnpm build && pnpm test && pnpm release:check","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app:ktlintCheck","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check --threads=1","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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":"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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","test:contracts":"pnpm test -- src/channels/plugins/contracts src/plugins/contracts","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:installDebug","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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","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: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:macos":"bash scripts/e2e/parallels-macos-smoke.sh","android:bundle:release":"bun apps/android/scripts/build-release-aab.ts","test:extensions:memory":"node scripts/profile-extension-memory.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","check:base-config-schema":"node --import tsx scripts/generate-base-config-schema.ts --check","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","release:plugins:npm:plan":"node --import tsx scripts/plugin-npm-release-plan.ts","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: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":"REMOTECLAW_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","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","lint:webhook:no-low-level-body-read":"node scripts/check-webhook-auth-body-order.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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.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","uuid":"^11.1.0","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260327145736.0ea2438_1774623481961_0.2258827322172976","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260327152650.8b92154":{"name":"remoteclaw","version":"0.1.0-next.20260327152650.8b92154","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260327152650.8b92154","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"1cdfed522c5f9f4bb7f94c43d0d46e417f1dda5a","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260327152650.8b92154.tgz","fileCount":2652,"integrity":"sha512-pog/LVDe9SpjHUk5mX1PjjIsklL6B2M/8Av2AHGoZK2GdJw8KmC55MfrQQWl7APgqcuw+PtciSlUmgqczp0OgA==","signatures":[{"sig":"MEYCIQDZrQMFLWoegg41j00Ic1/9p2Mo2IdI0DXYeXWXABBz/gIhAPbjuGn4nMdNdp92nCWauv9BOZEM8Lf+1YFIM9opRWtV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260327152650.8b92154","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24487786},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.10","hono":"4.12.5","yauzl":"3.2.1","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.16.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.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/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.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/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.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":"8b92154819e813ec17054d4d2e35647db63b5e4a","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: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 && pnpm check:base-config-schema","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","land:gate":"pnpm install --frozen-lockfile --prefer-offline --ignore-scripts=false --config.engine-strict=false --config.enable-pre-post-scripts=true --config.side-effects-cache=true && pnpm check && pnpm build && pnpm test && pnpm release:check","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app:ktlintCheck","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check --threads=1","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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":"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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","test:contracts":"pnpm test -- src/channels/plugins/contracts src/plugins/contracts","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:installDebug","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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","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: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:macos":"bash scripts/e2e/parallels-macos-smoke.sh","android:bundle:release":"bun apps/android/scripts/build-release-aab.ts","test:extensions:memory":"node scripts/profile-extension-memory.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","check:base-config-schema":"node --import tsx scripts/generate-base-config-schema.ts --check","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","release:plugins:npm:plan":"node --import tsx scripts/plugin-npm-release-plan.ts","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: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":"REMOTECLAW_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","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","lint:webhook:no-low-level-body-read":"node scripts/check-webhook-auth-body-order.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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.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","uuid":"^11.1.0","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260327152650.8b92154_1774625236013_0.41653182079168305","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260327154440.5da697f":{"name":"remoteclaw","version":"0.1.0-next.20260327154440.5da697f","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260327154440.5da697f","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"8b74e673dac4a44980eed8def4c7c0e40a73778a","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260327154440.5da697f.tgz","fileCount":2652,"integrity":"sha512-qr5swuJPV2LA15k3s9AqCuRAU8T/gU/GYVEyhlOdVACVFYHkDQBtUQeIKHLUZ43IqAJtzwh7SAeJIUWPfHaTqg==","signatures":[{"sig":"MEUCIHCOeY3LT0LCnpNzNJH90y4QbQrb3XcvxF3GC2+WOQtyAiEAxn62M6Q/vlCP+FJihuIupFyuwqAq0fGFkx0wi/q1tgM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260327154440.5da697f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24487958},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.10","hono":"4.12.5","yauzl":"3.2.1","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.16.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.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/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.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/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.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":"5da697f032d0de6af5bce2a3d271e2bc2b05f4cb","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: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 && pnpm check:base-config-schema","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","land:gate":"pnpm install --frozen-lockfile --prefer-offline --ignore-scripts=false --config.engine-strict=false --config.enable-pre-post-scripts=true --config.side-effects-cache=true && pnpm check && pnpm build && pnpm test && pnpm release:check","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app:ktlintCheck","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check --threads=1","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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":"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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","test:contracts":"pnpm test -- src/channels/plugins/contracts src/plugins/contracts","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:installDebug","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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","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: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:macos":"bash scripts/e2e/parallels-macos-smoke.sh","android:bundle:release":"bun apps/android/scripts/build-release-aab.ts","test:extensions:memory":"node scripts/profile-extension-memory.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","check:base-config-schema":"node --import tsx scripts/generate-base-config-schema.ts --check","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","release:plugins:npm:plan":"node --import tsx scripts/plugin-npm-release-plan.ts","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: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":"REMOTECLAW_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","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","lint:webhook:no-low-level-body-read":"node scripts/check-webhook-auth-body-order.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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.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","uuid":"^11.1.0","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260327154440.5da697f_1774626306962_0.8379974088224391","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260327172101.f848d08":{"name":"remoteclaw","version":"0.1.0-next.20260327172101.f848d08","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260327172101.f848d08","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"40351df391db532b183c2cf0f398dceef76126ca","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260327172101.f848d08.tgz","fileCount":2652,"integrity":"sha512-GmKfuhiwTsdUCT805XGUxob6h6Fbu0LfZa4xZUXB5fIPg1AQ2Ezz94LgBk6qbSkcK5/tn9VoKDvLT+aeevMVfQ==","signatures":[{"sig":"MEUCIEVN7hmz2hGvo5qk4A460w7YZb+j8LxaubSPgNC610EdAiEAwZn2skVNBS0hNN8PPi3aoFuTGj+vJq3XyCRsAu48Pos=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260327172101.f848d08","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24489024},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.10","hono":"4.12.5","yauzl":"3.2.1","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.16.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.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/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.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/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.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":"f848d08142c98921d758b562dd042a965e06e16f","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: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 && pnpm check:base-config-schema","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","land:gate":"pnpm install --frozen-lockfile --prefer-offline --ignore-scripts=false --config.engine-strict=false --config.enable-pre-post-scripts=true --config.side-effects-cache=true && pnpm check && pnpm build && pnpm test && pnpm release:check","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app:ktlintCheck","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check --threads=1","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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":"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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","test:contracts":"pnpm test -- src/channels/plugins/contracts src/plugins/contracts","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:installDebug","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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","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: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:macos":"bash scripts/e2e/parallels-macos-smoke.sh","android:bundle:release":"bun apps/android/scripts/build-release-aab.ts","test:extensions:memory":"node scripts/profile-extension-memory.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","check:base-config-schema":"node --import tsx scripts/generate-base-config-schema.ts --check","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","release:plugins:npm:plan":"node --import tsx scripts/plugin-npm-release-plan.ts","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: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":"REMOTECLAW_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","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","lint:webhook:no-low-level-body-read":"node scripts/check-webhook-auth-body-order.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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.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","uuid":"^11.1.0","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260327172101.f848d08_1774632086450_0.6876653213942567","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260328152716.b2dfbc5":{"name":"remoteclaw","version":"0.1.0-next.20260328152716.b2dfbc5","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260328152716.b2dfbc5","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"a9da82003c29eca312cb3408056b77e7cc405250","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260328152716.b2dfbc5.tgz","fileCount":2739,"integrity":"sha512-+vUt/e1E38Ink+vhsYskF1lCIIvMJOg3BW8xgKgTy7LbNQ8GUvIGWTb90/QjZcKo89B+p+VM+BrYY9noe4NnYA==","signatures":[{"sig":"MEYCIQDONnMOdsT6QUhcSRUe76j9sNni3yMTTwDKNLScYT28uAIhAOK3xpld6rVvI8wlsH4toSHngp8nxS6RxfrDhoTI+9mE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260328152716.b2dfbc5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":25463073},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.10","hono":"4.12.5","yauzl":"3.2.1","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.16.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.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/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.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/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.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":"b2dfbc51ae0085644918c871be79073e215d12d0","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: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 && pnpm check:base-config-schema","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","land:gate":"pnpm install --frozen-lockfile --prefer-offline --ignore-scripts=false --config.engine-strict=false --config.enable-pre-post-scripts=true --config.side-effects-cache=true && pnpm check && pnpm build && pnpm test && pnpm release:check","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app:ktlintCheck","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check --threads=1","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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":"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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","test:contracts":"pnpm test -- src/channels/plugins/contracts src/plugins/contracts","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:installDebug","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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","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: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:macos":"bash scripts/e2e/parallels-macos-smoke.sh","android:bundle:release":"bun apps/android/scripts/build-release-aab.ts","test:extensions:memory":"node scripts/profile-extension-memory.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","check:base-config-schema":"node --import tsx scripts/generate-base-config-schema.ts --check","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","release:plugins:npm:plan":"node --import tsx scripts/plugin-npm-release-plan.ts","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: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":"REMOTECLAW_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","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","lint:webhook:no-low-level-body-read":"node scripts/check-webhook-auth-body-order.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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.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","uuid":"^11.1.0","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260328152716.b2dfbc5_1774711662303_0.29265543016102047","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260328171901.f848d08":{"name":"remoteclaw","version":"0.1.0-next.20260328171901.f848d08","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260328171901.f848d08","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"8de8d6d3f605d40394615cd9ae5d6c14225e0fa2","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260328171901.f848d08.tgz","fileCount":2652,"integrity":"sha512-thB4bmUjt+2qQ/I0gra1QzuJZmUpqvr5fNArw9ElArw+DKcjvU8AREmA82Ixl5cbMRyXEf/ICeQRP0Mp+C4VhQ==","signatures":[{"sig":"MEYCIQCT5wAJtiAUkcqHuv5QJZVtD1YvNyP3O+woK4DXVBne3gIhAKnp32QDchqvSp2ddMADyBFlUKgtmf8NRnj4WO7ZF/Bn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260328171901.f848d08","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24489041},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.10","hono":"4.12.5","yauzl":"3.2.1","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.16.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.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/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.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/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.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":"f848d08142c98921d758b562dd042a965e06e16f","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: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 && pnpm check:base-config-schema","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","land:gate":"pnpm install --frozen-lockfile --prefer-offline --ignore-scripts=false --config.engine-strict=false --config.enable-pre-post-scripts=true --config.side-effects-cache=true && pnpm check && pnpm build && pnpm test && pnpm release:check","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app:ktlintCheck","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check --threads=1","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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":"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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","test:contracts":"pnpm test -- src/channels/plugins/contracts src/plugins/contracts","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:installDebug","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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","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: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:macos":"bash scripts/e2e/parallels-macos-smoke.sh","android:bundle:release":"bun apps/android/scripts/build-release-aab.ts","test:extensions:memory":"node scripts/profile-extension-memory.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","check:base-config-schema":"node --import tsx scripts/generate-base-config-schema.ts --check","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","release:plugins:npm:plan":"node --import tsx scripts/plugin-npm-release-plan.ts","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: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":"REMOTECLAW_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","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","lint:webhook:no-low-level-body-read":"node scripts/check-webhook-auth-body-order.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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.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","uuid":"^11.1.0","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260328171901.f848d08_1774718369163_0.20839122538569588","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260328180540.032d9eb":{"name":"remoteclaw","version":"0.1.0-next.20260328180540.032d9eb","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260328180540.032d9eb","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d669383d64d5d10cc9ee7c1fd2202890afef8bf4","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260328180540.032d9eb.tgz","fileCount":2693,"integrity":"sha512-6WyoQ8TFf3bh/Lh1fWkanWjQHf5vw8vFrQuECZBaj8Uol3WVjPEhdZiBgjERbeABSscBsR4OWtG+GkqwaAS0WQ==","signatures":[{"sig":"MEYCIQCsb0dmRhr1LUH0DHa7bbaXmZa2rY5pt4KgdwMUJTkEnAIhALEFuK9uBens2fkFRLZXP5md8B6FUJIFucCzXB8WVsWS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260328180540.032d9eb","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24633678},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.10","hono":"4.12.5","yauzl":"3.2.1","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.16.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.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/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.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/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.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":"032d9ebdf4aac86e14e27bc87bcf402c844d907e","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: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 && pnpm check:base-config-schema","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","land:gate":"pnpm install --frozen-lockfile --prefer-offline --ignore-scripts=false --config.engine-strict=false --config.enable-pre-post-scripts=true --config.side-effects-cache=true && pnpm check && pnpm build && pnpm test && pnpm release:check","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app:ktlintCheck","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check --threads=1","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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":"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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","test:contracts":"pnpm test -- src/channels/plugins/contracts src/plugins/contracts","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:installDebug","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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","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: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:macos":"bash scripts/e2e/parallels-macos-smoke.sh","android:bundle:release":"bun apps/android/scripts/build-release-aab.ts","test:extensions:memory":"node scripts/profile-extension-memory.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","check:base-config-schema":"node --import tsx scripts/generate-base-config-schema.ts --check","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","release:plugins:npm:plan":"node --import tsx scripts/plugin-npm-release-plan.ts","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: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":"REMOTECLAW_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","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","lint:webhook:no-low-level-body-read":"node scripts/check-webhook-auth-body-order.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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.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","uuid":"^11.1.0","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260328180540.032d9eb_1774721167628_0.2616744701120348","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260328212533.b968869":{"name":"remoteclaw","version":"0.1.0-next.20260328212533.b968869","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260328212533.b968869","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"76061d9114ad4b9aeb679ad373341c3bf01ceaab","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260328212533.b968869.tgz","fileCount":2693,"integrity":"sha512-oBmmpie/EhxrIAy/0mjgnvOqDGZkR2olme2s1pUEnBXyljvR6VD84RQ9STCBF7fk3u7Gnq+Tj6/bWk5PWXZTSQ==","signatures":[{"sig":"MEUCIQDm/ppOqq+xJVdTXCNCOYvRoLlM6V3bKT03HdH/cBQ30QIgO28T/1btTzg3OejaFX+av2QP6DfwF5yxhSl829TH60E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260328212533.b968869","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24636032},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.10","hono":"4.12.5","yauzl":"3.2.1","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.16.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.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/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.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/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.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":"b96886932b1b1eaf3fc3c16fde33d7008439676f","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: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 && pnpm check:base-config-schema","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","land:gate":"pnpm install --frozen-lockfile --prefer-offline --ignore-scripts=false --config.engine-strict=false --config.enable-pre-post-scripts=true --config.side-effects-cache=true && pnpm check && pnpm build && pnpm test && pnpm release:check","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app:ktlintCheck","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check --threads=1","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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":"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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","test:contracts":"pnpm test -- src/channels/plugins/contracts src/plugins/contracts","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:installDebug","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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","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: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:macos":"bash scripts/e2e/parallels-macos-smoke.sh","android:bundle:release":"bun apps/android/scripts/build-release-aab.ts","test:extensions:memory":"node scripts/profile-extension-memory.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","check:base-config-schema":"node --import tsx scripts/generate-base-config-schema.ts --check","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","release:plugins:npm:plan":"node --import tsx scripts/plugin-npm-release-plan.ts","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: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":"REMOTECLAW_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","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","lint:webhook:no-low-level-body-read":"node scripts/check-webhook-auth-body-order.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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.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","uuid":"^11.1.0","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260328212533.b968869_1774733161749_0.6449576860457178","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260329072459.4b2b7ed":{"name":"remoteclaw","version":"0.1.0-next.20260329072459.4b2b7ed","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260329072459.4b2b7ed","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f856728e3d6198b5f41b5d7be2ec113602114a75","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260329072459.4b2b7ed.tgz","fileCount":2721,"integrity":"sha512-6JCNRoGdB3yxQ5QUiePI1fdSUO6Bx4TALvKpTxlBndJod7MeFiAm9OUWFzN3iSCdx9hsujMPOgv880MowL0XZA==","signatures":[{"sig":"MEYCIQD0e7n848mWl11rTmpZD42IxJRXkhYI7M92WesVjbSfeAIhAPRzfEWt5JbkGOwg7Se33l6ABS1RHw8Xo59v8iFGCBJL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260329072459.4b2b7ed","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24733859},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.10","hono":"4.12.5","yauzl":"3.2.1","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.16.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.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/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.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/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.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":"4b2b7ed378e630402c6dc22c503b4521df138bb7","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: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 && pnpm check:base-config-schema","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","land:gate":"pnpm install --frozen-lockfile --prefer-offline --ignore-scripts=false --config.engine-strict=false --config.enable-pre-post-scripts=true --config.side-effects-cache=true && pnpm check && pnpm build && pnpm test && pnpm release:check","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app:ktlintCheck","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check --threads=1","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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":"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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","test:contracts":"pnpm test -- src/channels/plugins/contracts src/plugins/contracts","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:installDebug","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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","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: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:macos":"bash scripts/e2e/parallels-macos-smoke.sh","android:bundle:release":"bun apps/android/scripts/build-release-aab.ts","test:extensions:memory":"node scripts/profile-extension-memory.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","check:base-config-schema":"node --import tsx scripts/generate-base-config-schema.ts --check","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","release:plugins:npm:plan":"node --import tsx scripts/plugin-npm-release-plan.ts","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: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":"REMOTECLAW_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","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","lint:webhook:no-low-level-body-read":"node scripts/check-webhook-auth-body-order.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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.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","uuid":"^11.1.0","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260329072459.4b2b7ed_1774769128475_0.3107469916771304","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260329080506.f8e6f80":{"name":"remoteclaw","version":"0.1.0-next.20260329080506.f8e6f80","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260329080506.f8e6f80","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"9faaf8c8cb133a07f049885705c6e8be160bdccc","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260329080506.f8e6f80.tgz","fileCount":2810,"integrity":"sha512-S8mXD1iT+1BdMFXeLQf3cFUQnf3aOb2nSnlzAnjFuOsh5Hffh41hMPDW9gX8TKt68h7qPycIK6yk9hamRI0cHg==","signatures":[{"sig":"MEQCIDAMSsvan35HZ1nBeFy1WP8dFvf+egEI8k7WmXDyUGdBAiAEsSaWEAELkX39c5X2ptS891OYIUBfy55ziyIn68/A0g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260329080506.f8e6f80","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":25095147},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.10","hono":"4.12.5","yauzl":"3.2.1","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.16.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.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/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.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/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.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":"f8e6f80f2178b859a1d867e5cd4dd31305f223d8","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: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 && pnpm check:base-config-schema","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","land:gate":"pnpm install --frozen-lockfile --prefer-offline --ignore-scripts=false --config.engine-strict=false --config.enable-pre-post-scripts=true --config.side-effects-cache=true && pnpm check && pnpm build && pnpm test && pnpm release:check","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app:ktlintCheck","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check --threads=1","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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":"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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","test:contracts":"pnpm test -- src/channels/plugins/contracts src/plugins/contracts","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:installDebug","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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","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: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:macos":"bash scripts/e2e/parallels-macos-smoke.sh","android:bundle:release":"bun apps/android/scripts/build-release-aab.ts","test:extensions:memory":"node scripts/profile-extension-memory.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","check:base-config-schema":"node --import tsx scripts/generate-base-config-schema.ts --check","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","release:plugins:npm:plan":"node --import tsx scripts/plugin-npm-release-plan.ts","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: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":"REMOTECLAW_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","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","lint:webhook:no-low-level-body-read":"node scripts/check-webhook-auth-body-order.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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.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","uuid":"^11.1.0","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260329080506.f8e6f80_1774771534351_0.5582651740300459","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260329084915.e076b86":{"name":"remoteclaw","version":"0.1.0-next.20260329084915.e076b86","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260329084915.e076b86","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"3ae69c469fc1f68e20edd1ca9d2f4713f3233f55","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260329084915.e076b86.tgz","fileCount":2907,"integrity":"sha512-pyWXqOxjif7hVPzshEdVrm4/cD4qNKU+jh0btBRGBka08E6jWVW9fDDingTKm5boCoZYDItHZgNKliisn4813A==","signatures":[{"sig":"MEUCIApF+EJswEIc4TgKwCJVUsjFBrLDpTXO4mKdEZ2pLShqAiEAiZEMJnzTB/oL5odHlAzhAoMBSPug+OxqbL1vFbJUUpw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260329084915.e076b86","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":25652839},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.10","hono":"4.12.5","yauzl":"3.2.1","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.16.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.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/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.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/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.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":"e076b8609bfe886d1a29fa0263791a060caeb9dd","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: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 && pnpm check:base-config-schema","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","land:gate":"pnpm install --frozen-lockfile --prefer-offline --ignore-scripts=false --config.engine-strict=false --config.enable-pre-post-scripts=true --config.side-effects-cache=true && pnpm check && pnpm build && pnpm test && pnpm release:check","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app:ktlintCheck","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check --threads=1","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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":"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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","test:contracts":"pnpm test -- src/channels/plugins/contracts src/plugins/contracts","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:installDebug","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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","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: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:macos":"bash scripts/e2e/parallels-macos-smoke.sh","android:bundle:release":"bun apps/android/scripts/build-release-aab.ts","test:extensions:memory":"node scripts/profile-extension-memory.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","check:base-config-schema":"node --import tsx scripts/generate-base-config-schema.ts --check","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","release:plugins:npm:plan":"node --import tsx scripts/plugin-npm-release-plan.ts","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: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":"REMOTECLAW_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","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","lint:webhook:no-low-level-body-read":"node scripts/check-webhook-auth-body-order.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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.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","uuid":"^11.1.0","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260329084915.e076b86_1774774183694_0.11573716627886643","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260329105338.620c52b":{"name":"remoteclaw","version":"0.1.0-next.20260329105338.620c52b","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260329105338.620c52b","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"07fc3f8f84db596e8e3b1420a379d78c08ea21d7","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260329105338.620c52b.tgz","fileCount":3026,"integrity":"sha512-Kx3bXao+3dnpIjLHmICSonW22OkQcPE+XkXiTc6Inj4MgoNDgMuQolf00cJn+YUpqnb6VSnaUKg1a0xfWU8g8Q==","signatures":[{"sig":"MEQCH0axS83OmJKUwDH8AfgXmnILArSBWzBfZiSS2IZy52MCIQCRvW4YRMeykF9/Lxk5Liedi0izMNk/F5AP98ZDx2TaMA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260329105338.620c52b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":26362488},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.10","hono":"4.12.5","yauzl":"3.2.1","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.16.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.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/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.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/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.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":"620c52bb0232298e7c57dafcdd3a1ff3b74d217a","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: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 && pnpm check:base-config-schema","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","land:gate":"pnpm install --frozen-lockfile --prefer-offline --ignore-scripts=false --config.engine-strict=false --config.enable-pre-post-scripts=true --config.side-effects-cache=true && pnpm check && pnpm build && pnpm test && pnpm release:check","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app:ktlintCheck","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check --threads=1","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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":"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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","test:contracts":"pnpm test -- src/channels/plugins/contracts src/plugins/contracts","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:installDebug","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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","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: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:macos":"bash scripts/e2e/parallels-macos-smoke.sh","android:bundle:release":"bun apps/android/scripts/build-release-aab.ts","test:extensions:memory":"node scripts/profile-extension-memory.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","check:base-config-schema":"node --import tsx scripts/generate-base-config-schema.ts --check","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","release:plugins:npm:plan":"node --import tsx scripts/plugin-npm-release-plan.ts","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: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":"REMOTECLAW_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","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","lint:webhook:no-low-level-body-read":"node scripts/check-webhook-auth-body-order.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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.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","uuid":"^11.1.0","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260329105338.620c52b_1774781645872_0.3437103494261049","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260329110832.94285b5":{"name":"remoteclaw","version":"0.1.0-next.20260329110832.94285b5","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260329110832.94285b5","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e902c390285f2e1ff1adc4a8d6c440eeae860fd8","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260329110832.94285b5.tgz","fileCount":3026,"integrity":"sha512-jJ8bu67xVGSW65iHV9w3KMw7DttYHxyab4vXUZ3G3bT6rwaxVrb3V+p4EBa/7yOM2WrJHEDsIAGavJkMoI8Mnw==","signatures":[{"sig":"MEUCIB/bYJRqoc7MuUyUJWWqWPuYDp2wlqXJxseo32B/+YHuAiEAzNQupk6KowA2cP5mZqxaJad0Yh4wr4iShB0RIMzHRhM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260329110832.94285b5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":26188132},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.10","hono":"4.12.5","yauzl":"3.2.1","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.16.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.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/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.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/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.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":"94285b57976a0853e99302d175b9adb6a3771009","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: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 && pnpm check:base-config-schema","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","land:gate":"pnpm install --frozen-lockfile --prefer-offline --ignore-scripts=false --config.engine-strict=false --config.enable-pre-post-scripts=true --config.side-effects-cache=true && pnpm check && pnpm build && pnpm test && pnpm release:check","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app:ktlintCheck","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check --threads=1","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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":"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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","test:contracts":"pnpm test -- src/channels/plugins/contracts src/plugins/contracts","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:installDebug","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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","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: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:macos":"bash scripts/e2e/parallels-macos-smoke.sh","android:bundle:release":"bun apps/android/scripts/build-release-aab.ts","test:extensions:memory":"node scripts/profile-extension-memory.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","check:base-config-schema":"node --import tsx scripts/generate-base-config-schema.ts --check","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","release:plugins:npm:plan":"node --import tsx scripts/plugin-npm-release-plan.ts","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: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":"REMOTECLAW_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","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","lint:webhook:no-low-level-body-read":"node scripts/check-webhook-auth-body-order.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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.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","uuid":"^11.1.0","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260329110832.94285b5_1774782539573_0.051989949531978","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260329120619.af73e07":{"name":"remoteclaw","version":"0.1.0-next.20260329120619.af73e07","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260329120619.af73e07","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f5c2e89fe5441971e7863f52a78afc18d8504f1e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260329120619.af73e07.tgz","fileCount":3028,"integrity":"sha512-xzfnBYvng2vl88U7e7AMiidsmziKwePHjvZFGdUbsX+SBB1TbQgcOX+H5bxqwa00XylFNFuncwxQq5bSAkaeCw==","signatures":[{"sig":"MEUCIQDDmcDq6LzCVTMCL6DTXLvE33zvblF8r8HzM5o9zSel8gIgDUpTeIEf5yX3gVQyzQwVqGSTE6HOZ/yJAa5ZvqNKmsQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260329120619.af73e07","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":26191438},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.10","hono":"4.12.5","yauzl":"3.2.1","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.16.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.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/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.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/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.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":"af73e07acc9e576b209cd422e3c36be0c8a2ff23","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: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 && pnpm check:base-config-schema","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","land:gate":"pnpm install --frozen-lockfile --prefer-offline --ignore-scripts=false --config.engine-strict=false --config.enable-pre-post-scripts=true --config.side-effects-cache=true && pnpm check && pnpm build && pnpm test && pnpm release:check","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app:ktlintCheck","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check --threads=1","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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":"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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","test:contracts":"pnpm test -- src/channels/plugins/contracts src/plugins/contracts","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:installDebug","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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","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: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:macos":"bash scripts/e2e/parallels-macos-smoke.sh","android:bundle:release":"bun apps/android/scripts/build-release-aab.ts","test:extensions:memory":"node scripts/profile-extension-memory.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","check:base-config-schema":"node --import tsx scripts/generate-base-config-schema.ts --check","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","release:plugins:npm:plan":"node --import tsx scripts/plugin-npm-release-plan.ts","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: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":"REMOTECLAW_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","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","lint:webhook:no-low-level-body-read":"node scripts/check-webhook-auth-body-order.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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.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","uuid":"^11.1.0","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260329120619.af73e07_1774786007609_0.23975631312990764","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260329123035.cc8afd7":{"name":"remoteclaw","version":"0.1.0-next.20260329123035.cc8afd7","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260329123035.cc8afd7","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e546c65bc43fca246b015e920201ecfc258142b8","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260329123035.cc8afd7.tgz","fileCount":2948,"integrity":"sha512-uI5eE5ViWSQzh3hmyZMsp4BeHdmfO1czr+n9w8VJNb+MUmc5r7c5LR1gNfwVAlgT9Pc2Mn43ZEjVTHTFVVpEYg==","signatures":[{"sig":"MEUCIBYwTp0zMsSFn8XdJjjRxgnESrrmxyhISPBDh6VW95jYAiEAv7q9U6VXOKmuTQRtprsyfU/DyyrI97CZMkkZ0buIUcs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260329123035.cc8afd7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":26184082},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.10","hono":"4.12.5","yauzl":"3.2.1","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.16.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.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/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.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/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.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":"cc8afd7e3e39485add0f5a4f689714f8763070af","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: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 && pnpm check:base-config-schema","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","land:gate":"pnpm install --frozen-lockfile --prefer-offline --ignore-scripts=false --config.engine-strict=false --config.enable-pre-post-scripts=true --config.side-effects-cache=true && pnpm check && pnpm build && pnpm test && pnpm release:check","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app:ktlintCheck","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check --threads=1","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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":"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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","test:contracts":"pnpm test -- src/channels/plugins/contracts src/plugins/contracts","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:installDebug","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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","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: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:macos":"bash scripts/e2e/parallels-macos-smoke.sh","android:bundle:release":"bun apps/android/scripts/build-release-aab.ts","test:extensions:memory":"node scripts/profile-extension-memory.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","check:base-config-schema":"node --import tsx scripts/generate-base-config-schema.ts --check","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","release:plugins:npm:plan":"node --import tsx scripts/plugin-npm-release-plan.ts","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: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":"REMOTECLAW_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","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","lint:webhook:no-low-level-body-read":"node scripts/check-webhook-auth-body-order.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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.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","uuid":"^11.1.0","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260329123035.cc8afd7_1774787462634_0.08415721871568405","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260329125015.9e3b1af":{"name":"remoteclaw","version":"0.1.0-next.20260329125015.9e3b1af","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260329125015.9e3b1af","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"36aa0b8c950199c654b050cabdf08303d5a13ee9","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260329125015.9e3b1af.tgz","fileCount":2948,"integrity":"sha512-kMQg+b2Xv3KjUZw+EZIkX7VMMz041wsueRpD7/D5YOWFZ46ptCGyX6U6pzameuG///P8ju1+o235IZSeBk5r2g==","signatures":[{"sig":"MEUCIGzF8MM9mFmQEq8nlYjDinMM+f7Wa+p0LwflmVeKPJpfAiEA5EmLpmjmH/Cvh4kuBNk01hHbcDeSiRotSi4ICyTuVGw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260329125015.9e3b1af","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":26184082},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.10","hono":"4.12.5","yauzl":"3.2.1","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.16.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.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/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.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/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.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":"9e3b1af85530926b60658e269be81f5f236aac2d","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: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 && pnpm check:base-config-schema","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","land:gate":"pnpm install --frozen-lockfile --prefer-offline --ignore-scripts=false --config.engine-strict=false --config.enable-pre-post-scripts=true --config.side-effects-cache=true && pnpm check && pnpm build && pnpm test && pnpm release:check","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app:ktlintCheck","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check --threads=1","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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":"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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","test:contracts":"pnpm test -- src/channels/plugins/contracts src/plugins/contracts","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:installDebug","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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","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: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:macos":"bash scripts/e2e/parallels-macos-smoke.sh","android:bundle:release":"bun apps/android/scripts/build-release-aab.ts","test:extensions:memory":"node scripts/profile-extension-memory.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","check:base-config-schema":"node --import tsx scripts/generate-base-config-schema.ts --check","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","release:plugins:npm:plan":"node --import tsx scripts/plugin-npm-release-plan.ts","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: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":"REMOTECLAW_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","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","lint:webhook:no-low-level-body-read":"node scripts/check-webhook-auth-body-order.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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.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","uuid":"^11.1.0","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260329125015.9e3b1af_1774788643122_0.2732773631146972","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260329130040.fe080e9":{"name":"remoteclaw","version":"0.1.0-next.20260329130040.fe080e9","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260329130040.fe080e9","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"998e863cb6c6916c9530e31568533ba202121c15","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260329130040.fe080e9.tgz","fileCount":2948,"integrity":"sha512-/DlA9Me5IyGQLyPS2bvCUHYL45Bp0XibOdcQI5vnhO4Mb9sI1gig9IyAsD8OYRmlS3Z1C4/3wYjW/NJar98RHA==","signatures":[{"sig":"MEUCIQD0Pj8IKccsNi1ZSnw0FhMTrbB8y8/4dnPzguvEnxS43wIgPF43MZujUCMu4oCF2BhNC8+tJCyiUj+xTIWY1BOxoJg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260329130040.fe080e9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":26184078},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.10","hono":"4.12.5","yauzl":"3.2.1","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.16.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.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/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.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/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.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":"fe080e92903cd1a45807326a0b9025ceb3a530f1","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: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 && pnpm check:base-config-schema","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","land:gate":"pnpm install --frozen-lockfile --prefer-offline --ignore-scripts=false --config.engine-strict=false --config.enable-pre-post-scripts=true --config.side-effects-cache=true && pnpm check && pnpm build && pnpm test && pnpm release:check","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app:ktlintCheck","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check --threads=1","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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":"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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","test:contracts":"pnpm test -- src/channels/plugins/contracts src/plugins/contracts","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:installDebug","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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","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: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:macos":"bash scripts/e2e/parallels-macos-smoke.sh","android:bundle:release":"bun apps/android/scripts/build-release-aab.ts","test:extensions:memory":"node scripts/profile-extension-memory.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","check:base-config-schema":"node --import tsx scripts/generate-base-config-schema.ts --check","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","release:plugins:npm:plan":"node --import tsx scripts/plugin-npm-release-plan.ts","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: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":"REMOTECLAW_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","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","lint:webhook:no-low-level-body-read":"node scripts/check-webhook-auth-body-order.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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.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","uuid":"^11.1.0","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260329130040.fe080e9_1774789268575_0.13660607299145178","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260330085817.7baf0d1":{"name":"remoteclaw","version":"0.1.0-next.20260330085817.7baf0d1","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260330085817.7baf0d1","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"aa8391b949595fda551930a59cad749fdbfcb356","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260330085817.7baf0d1.tgz","fileCount":2948,"integrity":"sha512-eTjqLM7++TJb9RuxASltHHsgwgttn+nZSZQiNjZdqUZL5DREdE/ilL52kjd3Hder/0NAqtpbikIZpofIbrbFOA==","signatures":[{"sig":"MEQCIDdj3DZjZOCqJ+KnRpF/5TOyUFo62xVAG3gEJdmpSwvCAiAsx5z/F7JAPBBT70GrfsLNjaqb1w7HbthrEHoducsqTw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260330085817.7baf0d1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":26185605},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.10","hono":"4.12.5","yauzl":"3.2.1","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.16.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.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/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.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/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.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":"7baf0d19762f7ad8765240038c58ac354ccd50a4","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: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 && pnpm check:base-config-schema","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","land:gate":"pnpm install --frozen-lockfile --prefer-offline --ignore-scripts=false --config.engine-strict=false --config.enable-pre-post-scripts=true --config.side-effects-cache=true && pnpm check && pnpm build && pnpm test && pnpm release:check","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app:ktlintCheck","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check --threads=1","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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":"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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","test:contracts":"pnpm test -- src/channels/plugins/contracts src/plugins/contracts","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:installDebug","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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","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: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:macos":"bash scripts/e2e/parallels-macos-smoke.sh","android:bundle:release":"bun apps/android/scripts/build-release-aab.ts","test:extensions:memory":"node scripts/profile-extension-memory.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","check:base-config-schema":"node --import tsx scripts/generate-base-config-schema.ts --check","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","release:plugins:npm:plan":"node --import tsx scripts/plugin-npm-release-plan.ts","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: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":"REMOTECLAW_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","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","lint:webhook:no-low-level-body-read":"node scripts/check-webhook-auth-body-order.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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.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","uuid":"^11.1.0","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260330085817.7baf0d1_1774861124644_0.2734678617451236","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260330092151.709be58":{"name":"remoteclaw","version":"0.1.0-next.20260330092151.709be58","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260330092151.709be58","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"5efb040cc4a60fc6d73ab63cb81b7e9ea32dc6e2","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260330092151.709be58.tgz","fileCount":2948,"integrity":"sha512-/QgnPLQ8duZrv06gTqyjYGvGNebZ+bXX/3Vom3Wjfi6JLaOIllcYZQRl2PTB/ttNdifoDWWoCG0m6XZkAnlHFw==","signatures":[{"sig":"MEUCIFSmS2UVEVn/okXAGgsQvDjLo4X3X4M9dNHvCPgmjkWAAiEA71w4AGkEUoi14rOliiKhYcT469uCdKaZvIp06D1wgP0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260330092151.709be58","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":26185588},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.10","hono":"4.12.5","yauzl":"3.2.1","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.16.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.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/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.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/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.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":"709be58b75e303f73db443061eee48f876ebd621","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: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 && pnpm check:base-config-schema","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","land:gate":"pnpm install --frozen-lockfile --prefer-offline --ignore-scripts=false --config.engine-strict=false --config.enable-pre-post-scripts=true --config.side-effects-cache=true && pnpm check && pnpm build && pnpm test && pnpm release:check","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app:ktlintCheck","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check --threads=1","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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":"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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","test:contracts":"pnpm test -- src/channels/plugins/contracts src/plugins/contracts","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:installDebug","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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","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: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:macos":"bash scripts/e2e/parallels-macos-smoke.sh","android:bundle:release":"bun apps/android/scripts/build-release-aab.ts","test:extensions:memory":"node scripts/profile-extension-memory.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","check:base-config-schema":"node --import tsx scripts/generate-base-config-schema.ts --check","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","release:plugins:npm:plan":"node --import tsx scripts/plugin-npm-release-plan.ts","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: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":"REMOTECLAW_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","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","lint:webhook:no-low-level-body-read":"node scripts/check-webhook-auth-body-order.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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.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","uuid":"^11.1.0","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260330092151.709be58_1774862538415_0.6387567179638367","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260404080935.132bdc5":{"name":"remoteclaw","version":"0.1.0-next.20260404080935.132bdc5","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260404080935.132bdc5","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"8e5612c72310e81f97eaea63bb90d6b714c34cd4","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260404080935.132bdc5.tgz","fileCount":2948,"integrity":"sha512-l8hDhsgpvmUvtB/C+DuQfupNLY987IuRHqrgg/rNgJNfJ+S9jnEdMHhYkLAauF9qqx59T0SyMmrboasUxUQ7Kw==","signatures":[{"sig":"MEUCIBLnbGaMBz8aoO+PYeTrNWH6uyvtbyA8c4a48iKjJ5VUAiEAwqgbmVt0lIsACrwxdbX5fTE+RdXMYAAKHl7UDHW7zUw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260404080935.132bdc5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":26185588},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.10","hono":"4.12.5","yauzl":"3.2.1","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.16.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.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/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.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/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.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":"132bdc53dcb49d2dd853d76e4d7c3b3197a63728","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: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 && pnpm check:base-config-schema","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","land:gate":"pnpm install --frozen-lockfile --prefer-offline --ignore-scripts=false --config.engine-strict=false --config.enable-pre-post-scripts=true --config.side-effects-cache=true && pnpm check && pnpm build && pnpm test && pnpm release:check","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app:ktlintCheck","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check --threads=1","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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":"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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","test:contracts":"pnpm test -- src/channels/plugins/contracts src/plugins/contracts","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:installDebug","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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","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: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:macos":"bash scripts/e2e/parallels-macos-smoke.sh","android:bundle:release":"bun apps/android/scripts/build-release-aab.ts","test:extensions:memory":"node scripts/profile-extension-memory.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","check:base-config-schema":"node --import tsx scripts/generate-base-config-schema.ts --check","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","release:plugins:npm:plan":"node --import tsx scripts/plugin-npm-release-plan.ts","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: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":"REMOTECLAW_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","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","lint:webhook:no-low-level-body-read":"node scripts/check-webhook-auth-body-order.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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","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","uuid":"^11.1.0","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260404080935.132bdc5_1775290202104_0.13398671362620584","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260404081524.9dbe752":{"name":"remoteclaw","version":"0.1.0-next.20260404081524.9dbe752","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260404081524.9dbe752","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e5e43105363828087b2ed2191825b728d6a03101","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260404081524.9dbe752.tgz","fileCount":2948,"integrity":"sha512-uosSZxOk5AVgUXDKzE9Nhj2jwqNBLGVI/r3JtqFpv/mNrloodj5XBBoVayHaJ3t+2iTdbfNJ/0Y5wBgTq29fIQ==","signatures":[{"sig":"MEYCIQCX275LEwF8H0UAQrIgEDdDVXI5AXRCJ4o3PAKhEK46mwIhAOAwtvEJSc1DGISM6aHezs0OzuC8EIjyk2kj3BZ6/Ako","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260404081524.9dbe752","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":26186857},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.10","hono":"4.12.5","yauzl":"3.2.1","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.16.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.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/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.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/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.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":"9dbe7524fe23e0e12692d008e8fec49e4cabd0d3","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: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 && pnpm check:base-config-schema","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","land:gate":"pnpm install --frozen-lockfile --prefer-offline --ignore-scripts=false --config.engine-strict=false --config.enable-pre-post-scripts=true --config.side-effects-cache=true && pnpm check && pnpm build && pnpm test && pnpm release:check","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app:ktlintCheck","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check --threads=1","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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":"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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","test:contracts":"pnpm test -- src/channels/plugins/contracts src/plugins/contracts","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:installDebug","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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","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: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:macos":"bash scripts/e2e/parallels-macos-smoke.sh","android:bundle:release":"bun apps/android/scripts/build-release-aab.ts","test:extensions:memory":"node scripts/profile-extension-memory.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","check:base-config-schema":"node --import tsx scripts/generate-base-config-schema.ts --check","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","release:plugins:npm:plan":"node --import tsx scripts/plugin-npm-release-plan.ts","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: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":"REMOTECLAW_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","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","lint:webhook:no-low-level-body-read":"node scripts/check-webhook-auth-body-order.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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","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","uuid":"^11.1.0","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260404081524.9dbe752_1775290552884_0.13555781958701463","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260404082154.75dcb8f":{"name":"remoteclaw","version":"0.1.0-next.20260404082154.75dcb8f","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260404082154.75dcb8f","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"5df2a66461836d609a20ac46b19e23528e109c69","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260404082154.75dcb8f.tgz","fileCount":2948,"integrity":"sha512-PHLO5jdXs0gy3J9vQG9iXasXaxrJoFUAGsT9JGvuWUrXAaYJ2inWsCjJ2T6jttiWv3kMq595+boocdwtYnTkPw==","signatures":[{"sig":"MEYCIQCZGDlDq8Ym0T3GY/cjShj3nILIxendIFBX1RmiBbEqpQIhAI4332PWAY0HhzfXDsRotDWHOOg2+EbYPqqFDimCYxVe","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260404082154.75dcb8f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":26186873},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.10","hono":"4.12.5","yauzl":"3.2.1","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.16.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.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/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.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/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.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":"75dcb8f8e2f74f7af5c486bcfe66842cbe2e5781","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: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 && pnpm check:base-config-schema","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","land:gate":"pnpm install --frozen-lockfile --prefer-offline --ignore-scripts=false --config.engine-strict=false --config.enable-pre-post-scripts=true --config.side-effects-cache=true && pnpm check && pnpm build && pnpm test && pnpm release:check","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app:ktlintCheck","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check --threads=1","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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":"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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","test:contracts":"pnpm test -- src/channels/plugins/contracts src/plugins/contracts","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:installDebug","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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","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: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:macos":"bash scripts/e2e/parallels-macos-smoke.sh","android:bundle:release":"bun apps/android/scripts/build-release-aab.ts","test:extensions:memory":"node scripts/profile-extension-memory.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","check:base-config-schema":"node --import tsx scripts/generate-base-config-schema.ts --check","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","release:plugins:npm:plan":"node --import tsx scripts/plugin-npm-release-plan.ts","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: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":"REMOTECLAW_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","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","lint:webhook:no-low-level-body-read":"node scripts/check-webhook-auth-body-order.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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","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","uuid":"^11.1.0","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260404082154.75dcb8f_1775290939638_0.06656672837924171","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260404082445.616a8e2":{"name":"remoteclaw","version":"0.1.0-next.20260404082445.616a8e2","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260404082445.616a8e2","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d071d7394be6a80fc7b5f9b9cfd5b05ac3ebd71d","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260404082445.616a8e2.tgz","fileCount":2948,"integrity":"sha512-WPfRUeJzUMLn7oGYVQ+RwMtrvrRDsoDhze0UMxAYxzz15Lx1PWYOtQoGqQ2ur23xaSItb0mJGlrgMBO2gmB8Fw==","signatures":[{"sig":"MEQCIAl/6QDhrckU1WRkf3pQxaVJ+Y3aGql5fS4oK+B4aGC1AiAOdAY95tnbtHSJcbStIiadnqjB8VXjruWYU4UlGit9Kw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260404082445.616a8e2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":26186892},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.10","hono":"4.12.5","yauzl":"3.2.1","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.16.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.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/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.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/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.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":"616a8e25be1d241ff403a79c76bb7cdc5e448a58","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: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 && pnpm check:base-config-schema","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","land:gate":"pnpm install --frozen-lockfile --prefer-offline --ignore-scripts=false --config.engine-strict=false --config.enable-pre-post-scripts=true --config.side-effects-cache=true && pnpm check && pnpm build && pnpm test && pnpm release:check","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app:ktlintCheck","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check --threads=1","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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":"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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","test:contracts":"pnpm test -- src/channels/plugins/contracts src/plugins/contracts","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:installDebug","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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","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: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:macos":"bash scripts/e2e/parallels-macos-smoke.sh","android:bundle:release":"bun apps/android/scripts/build-release-aab.ts","test:extensions:memory":"node scripts/profile-extension-memory.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","check:base-config-schema":"node --import tsx scripts/generate-base-config-schema.ts --check","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","release:plugins:npm:plan":"node --import tsx scripts/plugin-npm-release-plan.ts","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: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":"REMOTECLAW_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","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","lint:webhook:no-low-level-body-read":"node scripts/check-webhook-auth-body-order.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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","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","uuid":"^11.1.0","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260404082445.616a8e2_1775291112820_0.03279127247256941","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260404085735.c8d0f7c":{"name":"remoteclaw","version":"0.1.0-next.20260404085735.c8d0f7c","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260404085735.c8d0f7c","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"c31a621d23ef20a19b35aa6eb41a6480c0fc4e20","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260404085735.c8d0f7c.tgz","fileCount":2948,"integrity":"sha512-BHfiBdB0BUZFbIgla+t4Ld7eeCaKBnk3EobaEV8NV00ek+aTX6zZbnUPp+rEPwFnZ2rYfQKQofg4AS4guPLxCg==","signatures":[{"sig":"MEYCIQDYyQ5cmItRGFaocoOuUHT1m0P6QeK0EO0Z7q2Pryu4MQIhAP1GuvhtebYb66Bzh+vrYfORA7R1t6JMFc1Zq23w3+an","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260404085735.c8d0f7c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":26186884},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.10","hono":"4.12.5","yauzl":"3.2.1","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.16.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/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/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.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/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.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/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.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":"c8d0f7c301c4c1b40d7a9feb4ec41038312ddf33","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: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 && pnpm check:base-config-schema","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","land:gate":"pnpm install --frozen-lockfile --prefer-offline --ignore-scripts=false --config.engine-strict=false --config.enable-pre-post-scripts=true --config.side-effects-cache=true && pnpm check && pnpm build && pnpm test && pnpm release:check","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app:ktlintCheck","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check --threads=1","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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":"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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","test:contracts":"pnpm test -- src/channels/plugins/contracts src/plugins/contracts","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:installDebug","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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","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: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:macos":"bash scripts/e2e/parallels-macos-smoke.sh","android:bundle:release":"bun apps/android/scripts/build-release-aab.ts","test:extensions:memory":"node scripts/profile-extension-memory.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","check:base-config-schema":"node --import tsx scripts/generate-base-config-schema.ts --check","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","release:plugins:npm:plan":"node --import tsx scripts/plugin-npm-release-plan.ts","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: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":"REMOTECLAW_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","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","lint:webhook:no-low-level-body-read":"node scripts/check-webhook-auth-body-order.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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","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","uuid":"^11.1.0","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260404085735.c8d0f7c_1775293081099_0.31408096133195973","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260404182747.d71ae19":{"name":"remoteclaw","version":"0.1.0-next.20260404182747.d71ae19","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260404182747.d71ae19","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"7a436b04995dac1aa0c12962eddd2c295228a746","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260404182747.d71ae19.tgz","fileCount":2967,"integrity":"sha512-hqqth877r18ysMA8rtPX9Nnnmfl4TqK8chd3yEAeTUsZy8+jq+qRPQNQfp53fQngf9/y5m89NT7cbMa5+OKdOg==","signatures":[{"sig":"MEUCICbKXzNoB+bF3lMeOvEi0bMq7bSjmyv/kZsqFb690Zx2AiEAi3+Sgehk5CDg+a6nI3rI3cNf8MHr2t/+P2yaJmN48xE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260404182747.d71ae19","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":26236927},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.10","hono":"4.12.5","yauzl":"3.2.1","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.16.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/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/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/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/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/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/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/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/device-pair":{"types":"./dist/plugin-sdk/device-pair.d.ts","default":"./dist/plugin-sdk/device-pair.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/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/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/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/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/copilot-proxy":{"types":"./dist/plugin-sdk/copilot-proxy.d.ts","default":"./dist/plugin-sdk/copilot-proxy.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/phone-control":{"types":"./dist/plugin-sdk/phone-control.d.ts","default":"./dist/plugin-sdk/phone-control.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/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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-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/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/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/qwen-portal-auth":{"types":"./dist/plugin-sdk/qwen-portal-auth.d.ts","default":"./dist/plugin-sdk/qwen-portal-auth.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/minimax-portal-auth":{"types":"./dist/plugin-sdk/minimax-portal-auth.d.ts","default":"./dist/plugin-sdk/minimax-portal-auth.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/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/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/google-gemini-cli-auth":{"types":"./dist/plugin-sdk/google-gemini-cli-auth.d.ts","default":"./dist/plugin-sdk/google-gemini-cli-auth.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":"d71ae19da68a9041f3acb51660c74beaa6fe73f2","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: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 && pnpm check:base-config-schema","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","land:gate":"pnpm install --frozen-lockfile --prefer-offline --ignore-scripts=false --config.engine-strict=false --config.enable-pre-post-scripts=true --config.side-effects-cache=true && pnpm check && pnpm build && pnpm test && pnpm release:check","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","android:lint":"cd apps/android && ./gradlew :app:ktlintCheck","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check --threads=1","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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":"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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","test:contracts":"pnpm test -- src/channels/plugins/contracts src/plugins/contracts","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:installDebug","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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: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":"REMOTECLAW_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","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: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:macos":"bash scripts/e2e/parallels-macos-smoke.sh","android:bundle:release":"bun apps/android/scripts/build-release-aab.ts","test:extensions:memory":"node scripts/profile-extension-memory.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","check:base-config-schema":"node --import tsx scripts/generate-base-config-schema.ts --check","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","release:plugins:npm:plan":"node --import tsx scripts/plugin-npm-release-plan.ts","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: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":"REMOTECLAW_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","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","lint:webhook:no-low-level-body-read":"node scripts/check-webhook-auth-body-order.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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","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","uuid":"^11.1.0","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.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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.3","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260404182747.d71ae19_1775327295039_0.27243872396202096","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260405163806.e70f11e":{"name":"remoteclaw","version":"0.1.0-next.20260405163806.e70f11e","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260405163806.e70f11e","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"44456f730baf1a987fad84b664d132d74c9e3476","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260405163806.e70f11e.tgz","fileCount":2105,"integrity":"sha512-g43F34nLmGrSdathVMlhRT98+jWRlvBKrw/q4ZTJJGtuUMZ7icVqkt8QOplHIkJtj9lKSi7t72ukysBkAx8MwA==","signatures":[{"sig":"MEYCIQDFj5AHesjbCgjyNQ43hxyJz8XiV9+442B7hIFnmGq3xQIhAL9Vs7TNjNEC0ocvd2dp68QRL2NhIz48nQYm2s28uqHS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260405163806.e70f11e","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22639455},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"e70f11e9d6ce243a416819dad91f0a6b8b558f80","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260405163806.e70f11e_1775407116088_0.7932408973386791","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260405220210.a2c8887":{"name":"remoteclaw","version":"0.1.0-next.20260405220210.a2c8887","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260405220210.a2c8887","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"a694ef45e9425d7f6421999e09d818e79d75ad63","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260405220210.a2c8887.tgz","fileCount":2120,"integrity":"sha512-5WMV/p7sQM2YVuDB0NviAwJ31CqyzjWDTkfKFyObMQ6hWDypUbiGiKVOuc94S6QEGrQJrRIap3n+cJ+TCVvT3w==","signatures":[{"sig":"MEQCIEdnUuN72qt1MF5dxjM3GnzOU2J0UK8yJ5O4gI++sC/eAiASz5vjNaeTok+H6hsV+Dn3DbYBvewKhSPE80o/7fAdrw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260405220210.a2c8887","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":25636406},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"a2c8887d9cc8f38f00c6c94ce59e48f034e56265","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"publishConfig":{"access":"public"},"_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":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260405220210.a2c8887_1775426558171_0.9507199325868092","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260405224427.0523b71":{"name":"remoteclaw","version":"0.1.0-next.20260405224427.0523b71","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260405224427.0523b71","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"2a4cee65e657ef9dab5606398ffe0e2fb8ca9674","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260405224427.0523b71.tgz","fileCount":2120,"integrity":"sha512-k8MPZKIgo0hSxOss+vb1u/+XiSa/hhUgbxJ0EG02KTHuBsjHe4AlQ4lwo2L8QCH+crmZ11ueEJuD3KYlkjIQog==","signatures":[{"sig":"MEYCIQCIctDCSlRA3L6HYj1j+U08YYlQmcUYv1egGX3KLnuntwIhAMtjfn4Ljp1w5i7eNEk3Gig8JzjLBETKHQ3NqjzYcWxH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260405224427.0523b71","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":25636090},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"0523b71157a22c7aa9dc24aa48b3123724b95b71","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.2.25","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260405224427.0523b71_1775429095276_0.9846322535278844","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260405231452.696bc0a":{"name":"remoteclaw","version":"0.1.0-next.20260405231452.696bc0a","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260405231452.696bc0a","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e4d729b4cbbb8cf3d83716e3a40c9699d9593406","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260405231452.696bc0a.tgz","fileCount":2120,"integrity":"sha512-xx32PIXKGJm5IQsagZAtz5Oljw2okYinpq+lB5NDEDKxJtEIv9IztijZUVBMUdKs5qkDgMFVgCGgAfIek+axFg==","signatures":[{"sig":"MEUCIG+AA2vcOT79JZzl1/RxQOhMINDt3vryoEr1l6Wl9NswAiEAlAbSh07kCBTOivh58hVlguNnXoD8u25XILCHh/GbVP0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260405231452.696bc0a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":25637123},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"696bc0a723dceb86e11cebbccfccebb8b02071a0","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.2.25","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260405231452.696bc0a_1775430919264_0.10291698005725891","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260405235558.dff6b26":{"name":"remoteclaw","version":"0.1.0-next.20260405235558.dff6b26","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260405235558.dff6b26","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"a9fb7b908c6729771b1a3b97278988bdcb49129e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260405235558.dff6b26.tgz","fileCount":2120,"integrity":"sha512-K9oa6mQqZBL0wnhGUXytX0nhadI6v+HOB1zQnIm0p9X0yfGJ7UOC0dmMN67R6g1qxserXdIbA8h5HtyJRI5WLQ==","signatures":[{"sig":"MEUCIQC2V/WBJEGN+0WmEIpE58MTquTeZokUKGlj1U/e0j5a1wIgdVA+C0/yPxKw/HFPF78VRiulpEz8I1OzCr9G2l0GwKw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260405235558.dff6b26","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":25637136},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"dff6b26aeee19e92d39e90be0de3a6405e8f7ef8","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.2.25","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260405235558.dff6b26_1775433385857_0.8537123558682878","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260406053238.b929def":{"name":"remoteclaw","version":"0.1.0-next.20260406053238.b929def","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260406053238.b929def","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"4c8fb933fcc852a78b909affc006032f43ecb5cd","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260406053238.b929def.tgz","fileCount":2120,"integrity":"sha512-igQ6Z+x3soe2wWmHvB+rSc07wJX+UOQrow4NVJmX3e2xiTKHGFbd6zX9cIdfTqFxS1yxOWbBIwNHn2kHJ7037A==","signatures":[{"sig":"MEUCIQDFHfR8NdkGeb00BMJ7x/ZoRFKcnTlJoyd7ldtkMlsxPQIgfEGz+VR9PO8Rfs9d9ZKaJJ7vgwTpK0ojSo10S/0jxFU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260406053238.b929def","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":25637845},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"b929def13dc67c881848104ce2e7d8cc9f02f8f9","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.2.25","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260406053238.b929def_1775453593437_0.9470292344285984","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-next.20260406055751.3184ac6":{"name":"remoteclaw","version":"0.1.0-next.20260406055751.3184ac6","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0-next.20260406055751.3184ac6","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"703ec26b259a469502d2797402f6347824494245","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0-next.20260406055751.3184ac6.tgz","fileCount":2120,"integrity":"sha512-JKw1Zn1Rk1oTeLBBIPVJr25ZWnLIFxndjQlpXEKCPf2PbliaEWzgbuW8U7ny8H3AIrS7VodlEDJ6Pxu1fm/bCA==","signatures":[{"sig":"MEQCIGcKdtP9jsjwCJyWfS0mfaHKYEdQxEarAZDpT/eJ8xzGAiA29LMHDu8SmqybTjPPFOEMQ21maLkVle3vSNGPgj3Y+w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0-next.20260406055751.3184ac6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":25637861},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"3184ac6e897c63ddce36af5f80d91e02ee1c23fb","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.2.25","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0-next.20260406055751.3184ac6_1775455103098_0.2592593461048345","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"remoteclaw","version":"0.1.0","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.1.0","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"759808cad7501c9d981232e65928221c8aa39322","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.1.0.tgz","fileCount":2120,"integrity":"sha512-UPGxH1xLoZzgtkf3Qf+ZUdbXAVerNfLydaJhW2KBdcKFL6U5nnDf/Y33niRyoyt9b2uR7qTyclMCFPmlbxnqEw==","signatures":[{"sig":"MEYCIQDcyZmEjztgHIbtIWBa7pUOmlKgZ2jc1p1FNPwGoS6JMAIhANIkTCav9h7ulOJOiDJfj+WUBP8Cik2xPllFudonloWM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":25637148},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"3184ac6e897c63ddce36af5f80d91e02ee1c23fb","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.20260224.1"},"upstreamVersion":"2026.2.25","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.1.0_1775455218078_0.4018454590139082","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-next.20260406062324.89b0fe5":{"name":"remoteclaw","version":"0.2.0-next.20260406062324.89b0fe5","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.2.0-next.20260406062324.89b0fe5","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"61a6a0717cfc067731aa0b9a364f93a4d8603f58","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.2.0-next.20260406062324.89b0fe5.tgz","fileCount":2120,"integrity":"sha512-CzAFdZkxQaIzhE6h8rkLxxgfgNLBvtM6PSoO1xeAP+ZEAJ0q7mMUkKBKicTYsAk7c0pzGPUmRbspUM7nKtz4qw==","signatures":[{"sig":"MEUCIQDOuymFOBNQVOJKQB4+Iytqb/ZRHj45U+uKG491DeHEPgIgP/+FUO8bp1nNIgPCcNQXAvZtak/Rc+9iUW1GUBs9kuM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.2.0-next.20260406062324.89b0fe5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":25637844},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"89b0fe5b1533051e0ad66bc60e9a76406b7bce36","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.2.25","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.2.0-next.20260406062324.89b0fe5_1775456635049_0.8040886778332221","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-next.20260406091347.ec9bf83":{"name":"remoteclaw","version":"0.2.0-next.20260406091347.ec9bf83","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.2.0-next.20260406091347.ec9bf83","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f3179084cc971f25e48de667e9120983edf7b6f1","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.2.0-next.20260406091347.ec9bf83.tgz","fileCount":2120,"integrity":"sha512-HM7eY2NK12D7/35eo6zqTqL3wLMZXQlKBIGKIk/Xlgz+Wv9Fb6EphqVCJCHPlxyje5vCsCLPi93m0rcJ6vV5AQ==","signatures":[{"sig":"MEUCIH9l/gwckwvclvjDuZF/P9dFK2I2B4MVdMP6T3BXoIoFAiEApWzITa14mPvy0jzTuVtZr0oXfHQFVjjYU25P5aLxa28=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.2.0-next.20260406091347.ec9bf83","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":25638822},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"ec9bf83845e1f3a142d1dad58a74ef92a75bdfcf","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.2.25","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.2.0-next.20260406091347.ec9bf83_1775466858947_0.7078298207071663","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-next.20260406094600.f75d656":{"name":"remoteclaw","version":"0.2.0-next.20260406094600.f75d656","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.2.0-next.20260406094600.f75d656","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"fa3986dc2f602fa314230f0b940884c9740e20ab","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.2.0-next.20260406094600.f75d656.tgz","fileCount":2120,"integrity":"sha512-LYUzh8Tvrlkg5gy5nnGrt7UM3Aw18wNlMRRI6qpsC9h9arjApyNj+Tm6pbufs7QWHopbaQWfZLXhSeeI4oJljw==","signatures":[{"sig":"MEYCIQD+v5VDjsJg4zi+rEAbTsXqf+atQYXQfvyBd+nT8HV/vQIhAIs8itPeh0k3uxIXYkn91M5XY9ARjKCpidhuoXoQSA1W","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.2.0-next.20260406094600.f75d656","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":25638200},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"f75d656771e0a94055e5931281cb39ae65a05f4a","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.2.25","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.2.0-next.20260406094600.f75d656_1775468790328_0.042348061213890675","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-next.20260406122156.c6c426a":{"name":"remoteclaw","version":"0.2.0-next.20260406122156.c6c426a","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.2.0-next.20260406122156.c6c426a","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"4d8d7ab45463ea154b4ee70958ba7457328a0325","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.2.0-next.20260406122156.c6c426a.tgz","fileCount":2141,"integrity":"sha512-xriFRqnNxIgP6cbtyM63O+3FKhm7nbWmzVtqcjO1L8JmU0nEYEhSWsQYurU9Lk3LeZe6PhEmXOwkZvGRBOrCSQ==","signatures":[{"sig":"MEUCIGVzV+CQUy28GqBOjOTQBLUO+plkfutskiM8rngWnYNpAiEA7ujePZrkaR+blQjLMU5EmovL3dVTMNSXRjpIlIWEqj4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.2.0-next.20260406122156.c6c426a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":26027165},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"c6c426a744547a16ed15fcaf2b377aef813200cf","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.2.25","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.2.0-next.20260406122156.c6c426a_1775478149068_0.022522341264951784","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-next.20260406185003.9f1a03e":{"name":"remoteclaw","version":"0.2.0-next.20260406185003.9f1a03e","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.2.0-next.20260406185003.9f1a03e","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"395a249f85d94831c81bc2d6a5efac6d979b7004","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.2.0-next.20260406185003.9f1a03e.tgz","fileCount":2151,"integrity":"sha512-AjCmrnvi4+qxuq/kkFdv8DwmzqFWbc4AMTbc3Grhvme3fNUbTvyDto54Frd8QhB3chNl0Vxct91myYpb5lCPvA==","signatures":[{"sig":"MEUCIQCGAYI5yYfT/Wej9kjnOMIqsru+c9C81vnkpDSIE0VTSwIgX2b+3Vt6PHqqzYin30dXy5NG4ibK7r/1LTJsrEEEesg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.2.0-next.20260406185003.9f1a03e","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":26140261},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"9f1a03e5724ad0b4e7e91b13fe9f71fb22d9132d","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.2.25","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.2.0-next.20260406185003.9f1a03e_1775501435097_0.48877937023206197","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-next.20260406202122.ba8c80a":{"name":"remoteclaw","version":"0.2.0-next.20260406202122.ba8c80a","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.2.0-next.20260406202122.ba8c80a","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f246395bad5564219373da687e7986895476dcf4","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.2.0-next.20260406202122.ba8c80a.tgz","fileCount":2151,"integrity":"sha512-vhVlowzWBOJoyyIdV4yz7+EU3pI6Zv4Jm+xwWfMaJvGOvVAkQsxGKk1FWLKa/7QkjNmc52BEkypfFifDji1EoA==","signatures":[{"sig":"MEYCIQCA1Bd/Das4Sec765r+VTD894N57i4QgmZ4xA4tkVV96QIhAMhPgH+De6FGa2m0zGMGcy9fHp8P7VeRE+nbe7vnOk1n","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.2.0-next.20260406202122.ba8c80a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":26140937},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"ba8c80ac34463a22bac5814ad6302cf74fa37ea1","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.2.25","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.2.0-next.20260406202122.ba8c80a_1775506916348_0.66888974873654","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-next.20260406203913.1bc5f4b":{"name":"remoteclaw","version":"0.2.0-next.20260406203913.1bc5f4b","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.2.0-next.20260406203913.1bc5f4b","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"218fdb9f85b3bfde4e57ae5df282ba6ef1ee8015","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.2.0-next.20260406203913.1bc5f4b.tgz","fileCount":2151,"integrity":"sha512-LuxwRWMQ2InQOBFc45Ytc0VWKizyX0lOlF44biYPrvFyLWan6tWXa5CA8yFwCAwGs1tk7yGlcIkNavD6IY6oPg==","signatures":[{"sig":"MEYCIQDO5TMhdllVTS5GsTLUdeAncE3tgi0c4hEPjI5pGbVrOwIhAJtspRwr1MPrJXh8q1ci1pdaImbtbDH8v5ztG30ZlAM3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.2.0-next.20260406203913.1bc5f4b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":26140933},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"1bc5f4b79456e5d56d6287c087dbadae64e3c804","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.2.25","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.2.0-next.20260406203913.1bc5f4b_1775507982895_0.10625711631075685","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"remoteclaw","version":"0.2.0","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.2.0","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d7e91062d4d55344caed7fa866b3dde1a5474022","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.2.0.tgz","fileCount":2151,"integrity":"sha512-f1/qA0JDcdejAsqIJI+jHfxtZ25CAbGVX1DPLB49KmUdPJtU+zAg4xxUx8uGoKJdnP7+Y4O/1Q/w+6bF59Vqhg==","signatures":[{"sig":"MEUCID9yMYjJ+ykQn5xpm0FeOfgMrl0sQVL0Xxv4gIlaVO+HAiEAkyONJg/XSzbyrlZxbv5LNUqW7Cp7L5ARPy4NV1GH9t8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":26139557},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"1bc5f4b79456e5d56d6287c087dbadae64e3c804","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.20260224.1"},"upstreamVersion":"2026.2.25","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.2.0_1775508012840_0.37723726265911184","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.20260406214510.4ae2140":{"name":"remoteclaw","version":"0.3.0-next.20260406214510.4ae2140","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.3.0-next.20260406214510.4ae2140","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"27a4524103ec95a5071b1f97131367421ba0c386","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.3.0-next.20260406214510.4ae2140.tgz","fileCount":2151,"integrity":"sha512-dgy0724FnD9Ii1mjRS6nrgzZDlg7vG8u5Pq0+p0YzguudyGADw0gR2BDAG1VCAMg79xMeQWEv9fzY5rs1mXdIg==","signatures":[{"sig":"MEYCIQCOa+B49vqSNZXYtp9ylhHaa/VH4QOxky+iLFGniJjfDwIhAIbohiyxGg7PPShvtT/nfsuiJm0sUGpnkQ80A2ZBXIu+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.3.0-next.20260406214510.4ae2140","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":26140278},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"4ae2140d15ab74d78b87295fe1a45b47f69310db","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.2.25","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.3.0-next.20260406214510.4ae2140_1775511942339_0.5457098081608454","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.20260406221426.47c3096":{"name":"remoteclaw","version":"0.3.0-next.20260406221426.47c3096","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.3.0-next.20260406221426.47c3096","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"fdf96dfd3e82648e8bc1b36516c3d561039dac03","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.3.0-next.20260406221426.47c3096.tgz","fileCount":2152,"integrity":"sha512-szghjDr9Y1O7H5Qn6LV9tFLQgs4S+yhNKv+nc4Xqz9KQUw9WVO/jw0ya9FMUl0MezhjY15Yei5NfOUO1s17OiA==","signatures":[{"sig":"MEQCICtUD+0n9ePE4XqRGrYW+C5fBKOiTQuALYjV7KetbELdAiBzDj8+W98SbuFTHaOft9M1w4kTmhisbMNNgBfzF26rGQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.3.0-next.20260406221426.47c3096","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":26145368},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"47c30968f36cd97865ea58bc4d65560f75a1e3de","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.2.25","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.3.0-next.20260406221426.47c3096_1775513697331_0.22915348953889692","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.20260406225954.6def9ac":{"name":"remoteclaw","version":"0.3.0-next.20260406225954.6def9ac","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.3.0-next.20260406225954.6def9ac","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"674bb0b11e9d0da44320fcbc9ce26b290f6bd19f","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.3.0-next.20260406225954.6def9ac.tgz","fileCount":2152,"integrity":"sha512-Ot/pCRNOEWlIcdQvU8aySX6vLonAO6/+76t6k4rE8VjvCfcQ/uR3ZOT6ph7+qqeawbQi6iG5vHHNd377wpokDg==","signatures":[{"sig":"MEQCICKe5XR1vzySP+cbMoo7rpitg8G0bVe6zNvuuwKDxvKAAiB8wK3eSTPaNS5XWMsyxTkfVZBAw5DNfl8joE7G8v2cMw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.3.0-next.20260406225954.6def9ac","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":26181186},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"6def9ac647910067d64b796f632d8f3a2fd35905","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.2.25","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.3.0-next.20260406225954.6def9ac_1775516425517_0.4571647501853433","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.20260407093751.0ae03e7":{"name":"remoteclaw","version":"0.3.0-next.20260407093751.0ae03e7","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.3.0-next.20260407093751.0ae03e7","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"8f7c27ad9012b5d7072fa1e22aa38055fe8e1f2e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.3.0-next.20260407093751.0ae03e7.tgz","fileCount":2152,"integrity":"sha512-ey7jBaRPdgOOcrbglyFXXv5MCn9VydyU8eRfiPqq4dVFXyLOsl4pvPxv+ZUMna7DsMAqgNChfYznuvHklJV80w==","signatures":[{"sig":"MEUCIDejRTudcamXtMN+SVkQ/JwH4alnhWul20TXR0g3wuaRAiEAiaR+NTERpLm9igP83PyEa45V344p+mcK353JNsaOLns=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.3.0-next.20260407093751.0ae03e7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":26180355},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"0ae03e75e1c74f7bf0d8eb1e4fc8e05bacd37aa0","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.2.25","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.3.0-next.20260407093751.0ae03e7_1775554704352_0.37767954669374837","host":"s3://npm-registry-packages-npm-production"}},"0.2.1-next.20260407101947.1fb7470":{"name":"remoteclaw","version":"0.2.1-next.20260407101947.1fb7470","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.2.1-next.20260407101947.1fb7470","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"00962eef141f808139cef2dc8101e0ee55f34e9c","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.2.1-next.20260407101947.1fb7470.tgz","fileCount":2152,"integrity":"sha512-f1NAvtdoeM7R5h3hq6U0t326EAc0arWwhb69ewDFElQptAtF/47FNo/Wd8yqMaagVqcrxRiUyfPKaZ6aKK9igw==","signatures":[{"sig":"MEUCIQCu/ybvjfHKUoltELBDeippj16pJbUxsCI9MdCb5F2ZmwIgRL5EYYRyklHMMVRvKyLISuYvkdZL+XDwwjBE1lleeD0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.2.1-next.20260407101947.1fb7470","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":26179708},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"1fb7470dd5194a6f0d80ff2fc1ea762538d33662","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.2.25","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.2.1-next.20260407101947.1fb7470_1775557219339_0.2622749227720518","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"remoteclaw","version":"0.2.1","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.2.1","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f4b57d8ed93e4872d5192e40ab1237498725c395","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.2.1.tgz","fileCount":2152,"integrity":"sha512-OxTnuNj6xYVD5yhJAlgr4q5xNUAc5KLgFUxdSV40QaKJJUV5ng1NGsznd1HiX/zUYKtnnfQ9ryHgROGEvLbXvQ==","signatures":[{"sig":"MEUCIQD9IjINBK178jl5AXSMcyoIq7mo51iX6zewptv9vBlKuwIgJJQFwa52qMQyS5WaG9AuZuPxMv4m7j9/QRPKw0H380c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":26179000},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"1fb7470dd5194a6f0d80ff2fc1ea762538d33662","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.20260224.1"},"upstreamVersion":"2026.2.25","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.2.1_1775557252363_0.7997781900926788","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.20260407103145.5f3bf4c":{"name":"remoteclaw","version":"0.3.0-next.20260407103145.5f3bf4c","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.3.0-next.20260407103145.5f3bf4c","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"a95462218a4f5f0457abb05802e8cf5417fbe9e4","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.3.0-next.20260407103145.5f3bf4c.tgz","fileCount":2152,"integrity":"sha512-4ZLpCmtMTvzL4QTde2ZPJfKYZx7bTQwCSgiBHTQZ9Q3v56xWiefitrW6Ax4+eLJiZ6hfU/63r6p3qbjXUISqGQ==","signatures":[{"sig":"MEUCIAJTLH9MEfZaxFOdjkx5fw7Ut+Zx81Chmlsz3/Ri1GOFAiEA8yRKmqJ84NgV6DAsnNSZS2h9VC8wEgZy9fs5JG5bYv8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.3.0-next.20260407103145.5f3bf4c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":26179679},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"5f3bf4caf2a7f6b9bc74d3eaca51f2cedc9c88f9","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.2.25","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.3.0-next.20260407103145.5f3bf4c_1775557932114_0.7384280802661216","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.20260407104320.26a3880":{"name":"remoteclaw","version":"0.3.0-next.20260407104320.26a3880","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.3.0-next.20260407104320.26a3880","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"93351eaba974aeb2585644f313f26107c94626d9","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.3.0-next.20260407104320.26a3880.tgz","fileCount":2152,"integrity":"sha512-BhTEKWGqQL77VNr8V8bfHstaZpF3Ldgjwab6vehiLEzrN5kLmNox4T0eLpCn3pZu/YpIurtFo6kJmB7EpT5GcA==","signatures":[{"sig":"MEUCIDgZ8FjEA9SlnfyD0g//98RFA1O7AaYJi2Kicevtw6DhAiEA8+x5YqnAfyjHTkO8TM0mgUazJiPXBehmzU8LEZlk3zM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.3.0-next.20260407104320.26a3880","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":26179708},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"26a38806e6ced9c6fa90f7b44b34a54bf5441545","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.2.25","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.3.0-next.20260407104320.26a3880_1775558635724_0.1290068532637083","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.20260407125037.4f8bad9":{"name":"remoteclaw","version":"0.3.0-next.20260407125037.4f8bad9","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.3.0-next.20260407125037.4f8bad9","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"4c945093838c598db86995884fffbcb07d691583","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.3.0-next.20260407125037.4f8bad9.tgz","fileCount":2152,"integrity":"sha512-j/Ebs8jWVTyXgLN9q7c+eQ2xqQr874/7ioPiZWIYpVi7cFeZruZkCu3PjT/FZsrcoLirx8d557b9NxKaeDePxQ==","signatures":[{"sig":"MEUCIE5Q9J1BHcWUmNOMShZROVgcw4JOU17VN/zYa/FHolV4AiEAj+7B0ctWySCetlHtG5UeHWRJcky5UyvPuxw/YT+1CFE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.3.0-next.20260407125037.4f8bad9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":26179604},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"4f8bad99f06499539dac21713f721a532506b0e1","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.2.25","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.3.0-next.20260407125037.4f8bad9_1775566269887_0.9430549278929388","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-next.20260408065857.fb59ee3":{"name":"remoteclaw","version":"0.3.0-next.20260408065857.fb59ee3","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.3.0-next.20260408065857.fb59ee3","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"c4b21f805af9554031f86b753c9d2a8d3ae53f73","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.3.0-next.20260408065857.fb59ee3.tgz","fileCount":2164,"integrity":"sha512-w9qW9jYJBe0OU8RJ/AUajHUQAaMew379oRj/d40YDLKCC8mSAaT4GV7HRSIWBNgSiJ/E4pVS9/yep9dAOKLF9Q==","signatures":[{"sig":"MEUCIBDb3MsGnEu56bNhvxLapJ0PGdIp1UFb4ydEr6QiZClaAiEAwTuzmdVtbKfefv/TVG8g6TuTca1us+kOr+oIf8XjRyo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.3.0-next.20260408065857.fb59ee3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":27615848},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"fb59ee36a9d5fa4194068d810f315f4a68328c2a","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.1","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.3.0-next.20260408065857.fb59ee3_1775631571289_0.8311067596388806","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"remoteclaw","version":"0.3.0","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.3.0","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"de3e0da2ab172fbd916766418dc70d8632fe2ec6","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.3.0.tgz","fileCount":2164,"integrity":"sha512-RQFLQlvVUxVC+nIAIlAouR5fjhkD1EYAql+QgbDx7Ki2FDqBHCu5N4ey1M1WkgKTc+xOTYRCvC5No8/XNiSm1Q==","signatures":[{"sig":"MEYCIQD5xaX9a5478XwxE9gnNuJvagPfyLEOmxCyurYAQfT26gIhANaB55Fk7GIadNfRQl44aTc6Cim5BSkmGmqXEIDRvxPu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":27611923},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"fb59ee36a9d5fa4194068d810f315f4a68328c2a","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.20260224.1"},"upstreamVersion":"2026.3.1","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.3.0_1775634039451_0.6537667681923123","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.20260408075717.bf51367":{"name":"remoteclaw","version":"0.4.0-next.20260408075717.bf51367","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.4.0-next.20260408075717.bf51367","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"aa5bbffc6e1f2809c8ce9656d4dff1a0067ac0c9","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.4.0-next.20260408075717.bf51367.tgz","fileCount":2164,"integrity":"sha512-Ww4kpr01A7kxhBj4Rtvg6yqYBv36wbcuhEG3rrXJ5ilS0DZjK9E/ObI+tvkppfdbqsxMLMosA7n7jjL/l+n/jQ==","signatures":[{"sig":"MEYCIQCFOyMnnzQPUsCebDsLchvbYG2fDqq4GQTgNFCyaBsQBwIhAKT7B1NJlpfjPPEqMe/qyRNgD49bTPz+p2QvVt+2dMxm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.4.0-next.20260408075717.bf51367","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":27615174},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"bf51367ec3de949480686e3ab97f56eb5533138e","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.1","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.4.0-next.20260408075717.bf51367_1775635071070_0.22799091694475182","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.20260408080907.3e8e47a":{"name":"remoteclaw","version":"0.4.0-next.20260408080907.3e8e47a","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.4.0-next.20260408080907.3e8e47a","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"9ee2a37df3118614b7fe0d7293bc0c39beaa1c1d","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.4.0-next.20260408080907.3e8e47a.tgz","fileCount":2164,"integrity":"sha512-I36DG3VBKYH8cz5Zj7N+/0hJj8jCkRmP0DQX1SlG3NmY3CYYsxti1TLzrqIBULyjnNkrNPkNRd4UsQCRoO/Vcg==","signatures":[{"sig":"MEUCIQCEoAq1dgLa8aP4J3CnDenmcQEsJXdVg7jyXd9Khs1FvwIgAYP50Rrzp0FSa+aWaL+NF4mr62sawh9ndTsm4vJmmXI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.4.0-next.20260408080907.3e8e47a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":27612200},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"3e8e47a91a772a7372f7dad9a91432113eb8e6fc","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.1","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.4.0-next.20260408080907.3e8e47a_1775635780337_0.10859645339941704","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.20260408083650.0fd74cc":{"name":"remoteclaw","version":"0.4.0-next.20260408083650.0fd74cc","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.4.0-next.20260408083650.0fd74cc","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"4e0ee96ece665fe5791ddca75bc730fbdb328c20","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.4.0-next.20260408083650.0fd74cc.tgz","fileCount":2164,"integrity":"sha512-WMXVVtMebyjQoCm4DSZQ8PtX1FNPbAg8MsIYVvtsWypcXNexBEkRZ3ilivX5ZnhvgKOVQoUkY9k0CWkWaCe7wA==","signatures":[{"sig":"MEYCIQDDmBp8ppwpL7TADNHuhU16xjCEldw2J99LHNuO0jy/1gIhAKZM0mTLJUrMzZrXDva/ltxfoR0xj7gzH5EZjcEU0lE2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.4.0-next.20260408083650.0fd74cc","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":27612207},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"0fd74cccee1e414ad967ea5ab09bf4cc5f61baca","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.1","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.4.0-next.20260408083650.0fd74cc_1775637442377_0.8736589817304683","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.20260408101815.146c958":{"name":"remoteclaw","version":"0.4.0-next.20260408101815.146c958","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.4.0-next.20260408101815.146c958","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"ef73609e60281e67e42b11cbe4a79069a6241498","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.4.0-next.20260408101815.146c958.tgz","fileCount":2164,"integrity":"sha512-TCvYBpZx5cHQhBID0AZUqU2+wM91v2n3Jq9JjASMpfLfbwaMlgpQAzerpEnFLscqnigzLRPVwG0fjS8w+9aSpw==","signatures":[{"sig":"MEUCIDaq45h6p+N9qVfR2gLKOrTyUQYFRuHHei+0ANEqWHRyAiEAkm9i4FOKmMziV7byb+Gl42AIOYPzVtxWlTsvVBSKGXc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.4.0-next.20260408101815.146c958","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":27612771},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"146c95828ca9f122e9fe37687347a221635c9127","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.1","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.4.0-next.20260408101815.146c958_1775643527300_0.8228475350826128","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.20260408104301.9561c3f":{"name":"remoteclaw","version":"0.4.0-next.20260408104301.9561c3f","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.4.0-next.20260408104301.9561c3f","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f36554cc56bb57f8460f09d9aaae0ca23a55632c","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.4.0-next.20260408104301.9561c3f.tgz","fileCount":2164,"integrity":"sha512-arAxSQnwmovsPPAblC7mBk3WURt9TLtDjnGsnLbQyzG0xRRB/I2QiTXrpRsgYdJpx3e5h7WIfmLEayLK3sfKfQ==","signatures":[{"sig":"MEUCIBK+h9RNWORqMP6cjeahe7Eyn2dojWODvvxdXnZWiHCVAiEA+0OGg7TbGrbfgZKSOCGhSsshvcyC3zn32nqBvAe9nU8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.4.0-next.20260408104301.9561c3f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":27613441},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"9561c3f7a0bf46a405d59fe74e69d93accee2a65","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.1","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.4.0-next.20260408104301.9561c3f_1775645014802_0.3260333642464608","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.20260408121505.f8426f9":{"name":"remoteclaw","version":"0.4.0-next.20260408121505.f8426f9","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.4.0-next.20260408121505.f8426f9","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e955d617b67909b35aa36523f8c7e769355f4adb","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.4.0-next.20260408121505.f8426f9.tgz","fileCount":2163,"integrity":"sha512-fXQrXzxeaLNF2HiGQnX07SLRxy9lEkTrKmCJUBwVeFPYJ63PHgaHIAT7oyXaneiTm+JWFl+z76Ic6+pfnyDKFg==","signatures":[{"sig":"MEYCIQDIzCjk7TbqC5O+5EsS7ksPr2eZyxNTT5MaJ5nCVTUbCAIhAMw0+rDadhq9KDxceTXFg8Xh25W5m63X388LOKx3odIm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.4.0-next.20260408121505.f8426f9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":27562556},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"f8426f94b0e6f6fb0c6175c64e1293ddd0bf7c2e","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.1","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.4.0-next.20260408121505.f8426f9_1775650538051_0.9706365019444689","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.20260408130130.1e1c3fb":{"name":"remoteclaw","version":"0.4.0-next.20260408130130.1e1c3fb","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.4.0-next.20260408130130.1e1c3fb","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"12f95aa4666c992305393e6fcb620a06e208386c","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.4.0-next.20260408130130.1e1c3fb.tgz","fileCount":2163,"integrity":"sha512-CB0G/edBq6/XisXIdbttBvfUNWnLFN+rymEd1IdL1oxJdxpU46pGjdawYFvkcxuYNDkiolwa68Bzz2XJya5ftQ==","signatures":[{"sig":"MEUCIF3ZLYuUfMLTzEF5PwXrhxQqs/UBR5KmQLXZvTOtf7RTAiEAg89jPZ1XnY+lLPRn0583IhFl+Hf5nzAAbN8ohlw2nJs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.4.0-next.20260408130130.1e1c3fb","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":27551880},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"1e1c3fbe0b042f41983770f2a19f1fc7342ab7e5","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.1","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.4.0-next.20260408130130.1e1c3fb_1775653321102_0.4226058031463942","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.20260408141538.9c6aab1":{"name":"remoteclaw","version":"0.4.0-next.20260408141538.9c6aab1","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.4.0-next.20260408141538.9c6aab1","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"24f73ee2ebd16514b96832a72b81a4e9fe5df052","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.4.0-next.20260408141538.9c6aab1.tgz","fileCount":2162,"integrity":"sha512-1n8an0p4AEm3HIOs902Pn65FEDRDSMr/XVyZ/Wd1z80yjUiuewlXaQ1ajGRZyy3JQwedM78rQMRH6wDKAJaUvQ==","signatures":[{"sig":"MEQCIDbwWFns4E5DLNL3EiVsUzEi4T8H1OOrEYuePfkskKgFAiAHtqDcf/sZjb1ZUtELMdrwG0l6bXMMKo5zdDiR68fUrQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.4.0-next.20260408141538.9c6aab1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":27532062},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"9c6aab19bcdc0a843ddd56c50367acc62d68461f","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.1","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.4.0-next.20260408141538.9c6aab1_1775657769731_0.07281405961605092","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.20260408151939.297131b":{"name":"remoteclaw","version":"0.4.0-next.20260408151939.297131b","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.4.0-next.20260408151939.297131b","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"b8607a209d9b86e586d60b5a80fd84b1f8511547","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.4.0-next.20260408151939.297131b.tgz","fileCount":2162,"integrity":"sha512-JG2RxMpcFr33CPu2Ucc+miqVnQ9E7w1ZPuYkBrali2Rgegy/FYjpNnecg0HQRrY9wUaJpLK6NIP6vjUlOtHldA==","signatures":[{"sig":"MEQCIDAB+KjwPIxz8SQvtDesh0noxZThDgBcYtMZhH1h0X7nAiBCLdzNaiVIBimmaUWyUJXoSXOiWiuO0DGdTOmRv4ChEQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.4.0-next.20260408151939.297131b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":27530966},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"297131bc35d5abc154f7cd2bd719491bb0ee76a2","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.1","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.4.0-next.20260408151939.297131b_1775661613823_0.39386423319149877","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.20260408153232.c6ab083":{"name":"remoteclaw","version":"0.4.0-next.20260408153232.c6ab083","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.4.0-next.20260408153232.c6ab083","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"7d03193114fdbbcb230e95f6299c1a4e543b283e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.4.0-next.20260408153232.c6ab083.tgz","fileCount":2162,"integrity":"sha512-L6saHCALCEDV5uMBzEcxUBOmnj/cwNDj0j2fSs5A15EFAA8reNBqo+Tl0jxJVphPBl+qnaPDBIDi56CrsjnRZA==","signatures":[{"sig":"MEUCIBKoLF/2RErAVZIL98ckQ4Gj5mzRIWINSVEpLruyvaacAiEAyGOQJO2A7XhZTvhUahMuGhqEbSCXstxsbDTJTga24A4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.4.0-next.20260408153232.c6ab083","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":27533627},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"c6ab0833966e670035bbee30c19fce46230f1094","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.1","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.4.0-next.20260408153232.c6ab083_1775662384746_0.8206268727873121","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.20260408155149.13bc105":{"name":"remoteclaw","version":"0.4.0-next.20260408155149.13bc105","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.4.0-next.20260408155149.13bc105","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"6ac6f34928641ed73e6c4d79cc7e3d029f126e89","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.4.0-next.20260408155149.13bc105.tgz","fileCount":2162,"integrity":"sha512-4CRS63ZB4cA614pDOC6ZhRgINOutfXWyl7j6UaHARy3jtFR5P6tYfuLJ7i81VNU0o6HZPgVJ1qCQpRhH6SEVnw==","signatures":[{"sig":"MEUCIQDwEkd6vjYNwu1wkeKYLfbCEuhbYfRT2rn3GTlYx4q6LgIgbyadGu4dsgpF0fEEDDkH/9LMrOk5F8oLOiDS81SR4Zg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.4.0-next.20260408155149.13bc105","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":27531686},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"13bc10509324c2ab5e4c82012aa5c9e13ebf6cbf","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.1","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.4.0-next.20260408155149.13bc105_1775663544984_0.8526464643781582","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.20260408161954.d1d5a62":{"name":"remoteclaw","version":"0.4.0-next.20260408161954.d1d5a62","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.4.0-next.20260408161954.d1d5a62","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"93d881c7075eeaf935251ec41200cb0f77963c48","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.4.0-next.20260408161954.d1d5a62.tgz","fileCount":2162,"integrity":"sha512-uUVMdMI2D3OpyZTbC0lBRFbKUuo62MjtNU/V1SL6L3yWPqH3wVYY+vtMO1TunuOwSluUUKywbzuHDQqAdobfaQ==","signatures":[{"sig":"MEYCIQC/W5Okytn1KEsqZIxoKLR1JX9eCMn1YgnjggIz8EUmrQIhALYAuhzlFVIWWTJemJnyxY7YD/4X9bQr56T3G11US6Zh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.4.0-next.20260408161954.d1d5a62","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":27525085},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"d1d5a626edafeb8433035f3091e93a93bf681fa6","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.1","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.4.0-next.20260408161954.d1d5a62_1775665229243_0.40051419840771274","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.20260408164519.7bd809f":{"name":"remoteclaw","version":"0.4.0-next.20260408164519.7bd809f","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.4.0-next.20260408164519.7bd809f","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"cf4b00bb450018f14f29012b765b53241e2533f7","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.4.0-next.20260408164519.7bd809f.tgz","fileCount":2162,"integrity":"sha512-6os4ZY7/jb2+4iDsce8QS8x4w2efK8fglxRpCsA/l3fGTYZFshR2+sOhRd0HGjcKxI04uW3QSMdFXABDPuT+kQ==","signatures":[{"sig":"MEUCIQCqBPT5Y8I+88Do0Trdsl8rb7l25aC/8FnlDsnrJ8LybQIgQnVmW7DXdnPX1d45eT4dntgQHhjK8txbYWY/8NYSAjw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.4.0-next.20260408164519.7bd809f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":27525728},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"7bd809f390062fc0ce5fe7f36ad2fa7b4e1cf509","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.1","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.4.0-next.20260408164519.7bd809f_1775666753429_0.42475397490430855","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.20260408171448.442ae54":{"name":"remoteclaw","version":"0.4.0-next.20260408171448.442ae54","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.4.0-next.20260408171448.442ae54","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"bd933c73f1b8ee9f2ee935eb7936e2138387e7f6","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.4.0-next.20260408171448.442ae54.tgz","fileCount":2162,"integrity":"sha512-frRHkeEbqZYwmvs4rRxkdcelQ3yWtgc+fXIy1DNi0FhK69zB82jNt9id+4Z/JNMY88G7ZMQHFslgfFWmwVVdSw==","signatures":[{"sig":"MEUCIQDbDncFHY9tTCTV1/FlnhInJM/LBQz1/KgjU5xEQ9A0zAIgNssQtdJWwvopqu5h/k6LQGY1V9rqkb4CUL4tIPB0pAA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.4.0-next.20260408171448.442ae54","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":27525227},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"442ae540b385aa249afa2c4115cc7ba9037fa37d","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","@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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.1","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.4.0-next.20260408171448.442ae54_1775668520758_0.6468298844286786","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.20260409143610.6d51373":{"name":"remoteclaw","version":"0.4.0-next.20260409143610.6d51373","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.4.0-next.20260409143610.6d51373","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"c7d79b44bb2b876e52d418df6edd32705c19ac85","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.4.0-next.20260409143610.6d51373.tgz","fileCount":2356,"integrity":"sha512-ZIkDTYhsWIUFzBWqKaKfnzcGOvMBPsP3IeNe5ROBZq4fARqr1avNUA9FwwiOiXhqQmAemAgE6hJn8zscz37ZIA==","signatures":[{"sig":"MEUCIBr/S5DzNv8Frw7Z5fHI6I+m8Zw2JbMWtUypuEkAhNv+AiEAqP3XgW7wG+O6G6VlN7Y+lR9HgVr/qaBxD3zoV7vjPqE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.4.0-next.20260409143610.6d51373","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29482595},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"6d51373c0edeca0619c573fb13ed912f41800453","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.4.0-next.20260409143610.6d51373_1775745405991_0.7638203300436939","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.20260409145212.698866e":{"name":"remoteclaw","version":"0.4.0-next.20260409145212.698866e","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.4.0-next.20260409145212.698866e","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"ed11cdc57b6184afbd77d52cc654b425d4855231","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.4.0-next.20260409145212.698866e.tgz","fileCount":2356,"integrity":"sha512-1Yt/J67m84k58lJhcmS1zS8LdZc/03w84s4GYXlyJPB+NhS0TXebucQIJtGtwybEADz5h9GC3l78sL4Moo2k3A==","signatures":[{"sig":"MEUCIAgn5VOSdb1lEwDRY2/etIT1oof0rDgnrVOX4sXZLi1MAiEAieDufm9Rkq6hGKtYBiny2sENOLAdPfXeb57l7v6xFVg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.4.0-next.20260409145212.698866e","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29482582},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"698866e061339dc7ae533861b74765f70d22b597","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.4.0-next.20260409145212.698866e_1775746367578_0.4863874921019551","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.20260409153940.8b624bf":{"name":"remoteclaw","version":"0.4.0-next.20260409153940.8b624bf","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.4.0-next.20260409153940.8b624bf","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"081ff2256f410524414b54bbf5659bb9c76dd57f","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.4.0-next.20260409153940.8b624bf.tgz","fileCount":2356,"integrity":"sha512-lYWYhEkMF+2zTG/Nkd2ongbO7oCyGSZnY2ICfKZMhqsxkEwqyARRlpD+aTS5JgvkFCZDbd6buLV0lgcLpXp1eA==","signatures":[{"sig":"MEYCIQDPQOAIzMkgAhi14AkfJkbKp/dAX5kyehOiXYeot/jsawIhANpbyN12qey8IuqjYp51z/EJguE+qja943NeYSPepAH8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.4.0-next.20260409153940.8b624bf","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29485778},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"8b624bf0bef90d971db1c45c5bc46b7a5487811c","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.4.0-next.20260409153940.8b624bf_1775749215665_0.19737426547899029","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-next.20260409155414.1284472":{"name":"remoteclaw","version":"0.4.0-next.20260409155414.1284472","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.4.0-next.20260409155414.1284472","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"c30280fab02484672a2055206883373cf0f2f5fd","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.4.0-next.20260409155414.1284472.tgz","fileCount":2356,"integrity":"sha512-pxkNhZA3BpHpulkmX4C7cuo3rJDJitYDqccyfX5LVzPUorVob78MbJhfgjzr0H6Z3mntMHMSWSaXDxO9JU0Jrw==","signatures":[{"sig":"MEUCIEw2XmCgc4aIG3WEnZBq45OYevHXUbKOX+5LPouwO+HaAiEAyZxxTlfVh8DYfRUjCbGUSy51OUxgobqpFIgHB3aTCfg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.4.0-next.20260409155414.1284472","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29488488},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"1284472b49efa77634592e2e0c2643dced592102","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.4.0-next.20260409155414.1284472_1775750088619_0.8531209327095872","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"remoteclaw","version":"0.4.0","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.4.0","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"870fbcfe921fc5cefc89d0c1bbfec9207b73ffe9","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.4.0.tgz","fileCount":2356,"integrity":"sha512-72yZr3N3zD/ENZ31xSS8MukLns+RJg9MQL56kUGWnI/oQwMLHYTOBYsktPuTBnTUiP/A+/H/Lhlf+LsJV7h5/w==","signatures":[{"sig":"MEQCIEWZPy+VOmRrWgV33LuzzoNHTk77IHwOu0/NScT5q9ZdAiAR+G1hBJOechH3HF6SqmLdWLsVV7mB8mpRvivtB4jCRg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29485065},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"1284472b49efa77634592e2e0c2643dced592102","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.20260224.1"},"upstreamVersion":"2026.3.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.4.0_1775751345824_0.1432232668664979","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260409161558.583127a":{"name":"remoteclaw","version":"0.5.0-next.20260409161558.583127a","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260409161558.583127a","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"70211fd32024ea941517c0994b336eb1fb72551f","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260409161558.583127a.tgz","fileCount":2356,"integrity":"sha512-zJe5MU/jF2hsq6q2AR1phMP0DdXAZ3zeN3z7COmkR3r8woGcwcww5au8Za0fwy3+Q01xvdIMldk8ZbkudmADkw==","signatures":[{"sig":"MEQCIErY97hOSSP6lz93nBVEuorNcNTXkizToVSIuHJ0LMksAiAn1tne/NxxeZA/rxpO1mi0vZc0AaiK0NFlidnTDRRw5Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260409161558.583127a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29488488},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"583127ad22c8d8b1d31f5c5535818e5e52662325","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260409161558.583127a_1775751393089_0.4290818434032866","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260409163209.c29cd0d":{"name":"remoteclaw","version":"0.5.0-next.20260409163209.c29cd0d","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260409163209.c29cd0d","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"2f52a23dca10b48a02ee4b956e8c9242224b7b22","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260409163209.c29cd0d.tgz","fileCount":2356,"integrity":"sha512-D1gJtXZp1Mrj/mpZDR0jeZemzO9yqmjvDwQwJoZknmRShYLAq42pIJIGJKnGF0zOBarLmw/xwy3Jq52Tf1YEqA==","signatures":[{"sig":"MEQCIFhIP4dtIcx4ryITCXDV0kYwO+9pxKThmjjWLCGyivacAiB6cCnVcYQtJrBEPCpJ5pVWTU+YNGvR++Pj/IDQtVil2A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260409163209.c29cd0d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29484051},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"c29cd0dc6c673a4ed021f9494896f68750e7329e","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260409163209.c29cd0d_1775752364574_0.5512740247924175","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260409163927.328caa0":{"name":"remoteclaw","version":"0.5.0-next.20260409163927.328caa0","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260409163927.328caa0","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"3c26d134ccb69fb027ab889ed1753cca26bd3253","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260409163927.328caa0.tgz","fileCount":2356,"integrity":"sha512-RNqqlpFvhhPKPaEeqeoea4gluwzjwLK2un5SJ2Rq0Qem2Ee9uOmTCAlbsvMHSkbynXpSOHHN/GcxCGbt5eNIkg==","signatures":[{"sig":"MEUCIQCSN8jD9tAE6Nmbzkn2v5XJY9FTNTNc5Xw+Yqyz9xxz6gIgCz5bm6YaMx7tCAPyT3VFatoahsQBRGUUGBivNQ6hhNk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260409163927.328caa0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29479265},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"328caa034b5d316d44de50d7cb5c59f622084762","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260409163927.328caa0_1775752801556_0.6378723887402731","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260409164700.0f14415":{"name":"remoteclaw","version":"0.5.0-next.20260409164700.0f14415","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260409164700.0f14415","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"1616c9b26f31e76f4e9a332343d5ff537fa02b32","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260409164700.0f14415.tgz","fileCount":2356,"integrity":"sha512-RA2ZBYWFQgOxQvg/7+3gHpoAJyt4+QYCMhM9bc8ryaYOCV365KdZHa9w/7Z4Sp8hJKeh9Roc5g30T3Og/6CrOQ==","signatures":[{"sig":"MEUCIEFrp9uwTLHMOeYYd4NlZqZytV7aI3ZxUwdE8KpvZ8juAiEAmjQYjX4OaWAxHcP+pnN6rkn57MfjOnzclvLjvgsttXk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260409164700.0f14415","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29473959},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"0f14415830870d5630a4f6cf1045f7a1655efd8f","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260409164700.0f14415_1775753254892_0.277440562163612","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260409165534.dd55e4b":{"name":"remoteclaw","version":"0.5.0-next.20260409165534.dd55e4b","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260409165534.dd55e4b","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"627f080654b1ee7fc19d287e829032796141ce34","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260409165534.dd55e4b.tgz","fileCount":2356,"integrity":"sha512-0J8eKtLGBmv2CDa69XmjfmXkLxaD3bNtxf79/FN73Xqb+RF/7k5Tg41+ghb9PA8k7ohtra5IZt8/pCNp72YaXA==","signatures":[{"sig":"MEUCID6WtKrbwpxwKBqyXReV7gV2YH+HUoTZixSZdUAgYHrPAiEAuAe3HgzAPXtZq0D2oRucdhur2g+CV9hrV+uomwJfxFU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260409165534.dd55e4b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29468345},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"dd55e4b754bb16d762552f39489d7855a58f4743","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260409165534.dd55e4b_1775753768986_0.8752301991563292","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260409171046.f77ec8b":{"name":"remoteclaw","version":"0.5.0-next.20260409171046.f77ec8b","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260409171046.f77ec8b","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"975e1790f44b81df712db9bc88803508f36dda7e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260409171046.f77ec8b.tgz","fileCount":2356,"integrity":"sha512-RmSDZhcA5YT9dgnGnTOleZUo5LlMbO7YVa9x8fwwCJIsGDNJ6XnD5JvZ+b2kvoxCK4yaILYfc/u1GGX+LG2d5Q==","signatures":[{"sig":"MEUCIQCizINIjYKlGAc3MRg7redAyF06aejo8KTfYj2eK3e2CAIgChINxo1HDDwmd43tMUsKddxNtCS97Bf4HcPf8YOEGLo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260409171046.f77ec8b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29465100},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"f77ec8b3229bdef96595b7e15c40189f934cc47f","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260409171046.f77ec8b_1775754679729_0.1792105344207302","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260409183221.3e0f3f3":{"name":"remoteclaw","version":"0.5.0-next.20260409183221.3e0f3f3","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260409183221.3e0f3f3","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"8d1a0d7ba7e9d731e14f912696529f6fbb7e83eb","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260409183221.3e0f3f3.tgz","fileCount":2356,"integrity":"sha512-O1BEJ+6Px7CbSxul45cm4b8aDzwAPe9/xb2GA9iCf3Yc2eMwvJEusp4iZdc8d7HUt77QTgoGRRbar3CjjSms6g==","signatures":[{"sig":"MEQCIGP+pP15BlMeXGCkc3mBrfWA2IiuOO6ZATtnwG4pHX+LAiBTzoptAHPiHE71qiDOsNrNQDMJCqLjlgk7df0aTsTaBg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260409183221.3e0f3f3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29465274},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"3e0f3f322d462afe7afcc18cf5aead38f276a420","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260409183221.3e0f3f3_1775759581300_0.20157267758800157","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260409184335.3ce9f5f":{"name":"remoteclaw","version":"0.5.0-next.20260409184335.3ce9f5f","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260409184335.3ce9f5f","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"0d74ab0f19a72b5c29c290fc97d640d0f21382a5","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260409184335.3ce9f5f.tgz","fileCount":2356,"integrity":"sha512-+jqJ1Ib1BztdiKlaWmtBaSguaTQIKyFr8PMvLC2sDwL+w4N6bYBXceWlyguJhi7giEdV8buadtCjfhphfrmVnA==","signatures":[{"sig":"MEUCIQCatOxoctbEvA6SUei2RK4cAmqREwB3Y3fGMI0fBpfKUQIgZDNRZvnmSDoLRAwPNhHaTthkGCL73Qs6AZdC33erS5E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260409184335.3ce9f5f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29468645},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"3ce9f5fc2dc45a692849ea6f5be672495878f98d","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260409184335.3ce9f5f_1775760249109_0.38292745519376514","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260410081728.1b66328":{"name":"remoteclaw","version":"0.5.0-next.20260410081728.1b66328","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260410081728.1b66328","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"dd12ac4e8dbc62c981732a678a039118c0f9697a","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260410081728.1b66328.tgz","fileCount":2336,"integrity":"sha512-y3iLhajTJLOSfYtKvWQeNGckzaI4M2qCN5usNiYM30F1CGUOC/9bBH7P1BZJPM1bofD/KlybZyHmQ9nLJHYw9A==","signatures":[{"sig":"MEQCIGCqaBYbW2Yn58dMXzIwq6dIJ+HDSGMVAhEoF2Ht0nbsAiBhHRaLIWwoaC2Q58sU6hYvAujDbFaHbInTg/ho1mH2NA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260410081728.1b66328","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29123025},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"1b66328980b4295550010cbf4be3d4dc790dff14","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260410081728.1b66328_1775809081226_0.955237078170081","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260410084349.c2ef852":{"name":"remoteclaw","version":"0.5.0-next.20260410084349.c2ef852","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260410084349.c2ef852","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"0c15c948e91a08ceb515493acd6c5daab96278b7","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260410084349.c2ef852.tgz","fileCount":2336,"integrity":"sha512-OYIjv36lUnUhi/lwqcpB5zhOl4QsAAIsP1ZuBhFjUue366ZXAIN3LxarL8If68x98Mr8UTR4isr7wvkY0PlYKg==","signatures":[{"sig":"MEUCIQC711kxv767Hw9UgBKRmyMgX/B04eOl+DdOQrk0hJecGQIgX1rx78D4BTILgq8JqVk8KCClS3ogXdtjHEfRXS8UlRw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260410084349.c2ef852","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29123103},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"c2ef852803910ad7dfd8b582e8b34a4c4c12342f","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260410084349.c2ef852_1775810662318_0.2207536728753383","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260410091653.ade38e7":{"name":"remoteclaw","version":"0.5.0-next.20260410091653.ade38e7","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260410091653.ade38e7","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e185b95e94b1a7bb3fba3467958e1c9da2d5eb75","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260410091653.ade38e7.tgz","fileCount":2336,"integrity":"sha512-55y1v2bdx/ucZCEwx/9iv0LjVxI24x7EU9HVtEq8xY7N2nkZPc/pwwL9nHyoXguL3+sBoqOEWKd5VYo5uP1jgw==","signatures":[{"sig":"MEYCIQDYi80aKJt+FL3ncAqsp2xH0m/izOOM2fQccyTKPFg8/AIhALHdynESg8gwo/16Z3rY6lVfi2dksGTaDZ6SFXdg51Fs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260410091653.ade38e7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29123103},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"ade38e7fc7ac5b643b0d4cba3c2f16aac19f1a47","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260410091653.ade38e7_1775812646257_0.9557571681964325","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260410100750.57aa9a2":{"name":"remoteclaw","version":"0.5.0-next.20260410100750.57aa9a2","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260410100750.57aa9a2","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"59ae1c8934101829113931e4c67c113cbeb064c5","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260410100750.57aa9a2.tgz","fileCount":2336,"integrity":"sha512-CeMCUqERMM1nlAwaNiK8aG9qY3geBa1ZmO/xOmaL6UXgffNbpgbH0I99KfkfH5LkKyT8Z10MjmfaswF7WVXubQ==","signatures":[{"sig":"MEQCIEH1XUN6DSR4UhGpLQV/2rPyUt/7Q5iwTdDCFS3rdTHmAiAJ8doxL/9iFXiTF8dWcuq0XBwAQGsNaLAGdMJzU6PU2Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260410100750.57aa9a2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29120814},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"57aa9a2993a195391eafb4589852941edbb2cd2e","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260410100750.57aa9a2_1775815703890_0.22392010750324132","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260410113931.4b3f6d1":{"name":"remoteclaw","version":"0.5.0-next.20260410113931.4b3f6d1","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260410113931.4b3f6d1","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"da0b10846352be4e7ed7b819588a325411be6271","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260410113931.4b3f6d1.tgz","fileCount":2336,"integrity":"sha512-5vMl7p/FqvnwlxvNxpiCOBQfh0tFUAgNNcfx/1qywlmqaNoJ8m+eGrL6Igt7U0G03y7CaaHoGbgHUXlaRP9hrw==","signatures":[{"sig":"MEUCIG44rizyU+ZKxWw7C5ZSD1hl1nFCPdj1ST/h4BOUB6sZAiEAnQkhdkRB32EXxuimVVcAse2zQWjaF2LX1wDrJfGw7WM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260410113931.4b3f6d1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29120260},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"4b3f6d15459c96c8107d9f7025ff31e676b1ef66","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260410113931.4b3f6d1_1775821205241_0.2343581374760113","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260410123242.b576f34":{"name":"remoteclaw","version":"0.5.0-next.20260410123242.b576f34","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260410123242.b576f34","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"c27b5e50ddce069db279d58ea66f2b065867296e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260410123242.b576f34.tgz","fileCount":2336,"integrity":"sha512-vmi8mk/5Z3BvoYYrLznC2O0njpegdHi6UMIbXMX83nyZreLoIIY7f1JCI0peXLl3Nt3qBvmbOkW24Iow7uNHlQ==","signatures":[{"sig":"MEUCIQCAdeoHni6Kw4L+UvFEcabjyLOSkgAuDgSlAZHh+aMVhgIgNnZk1OTAZWSG6M8B6RCJhNV6JKNdUZCYcPEudw42+PQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260410123242.b576f34","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29120060},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"b576f34cdfa35b7cee8bc7ecaba2ceccfb3d1827","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260410123242.b576f34_1775824396407_0.0898631181654197","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260410123953.efe6d24":{"name":"remoteclaw","version":"0.5.0-next.20260410123953.efe6d24","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260410123953.efe6d24","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"ae1f45abae929660633ba31ad445cfacb2b9c8ab","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260410123953.efe6d24.tgz","fileCount":2336,"integrity":"sha512-n2OD1auskaQXYHBQZTnkRRtNgl2HljlyqOwhtqj8K+FoL6Nt15oeXs3MQ04vqR98zY9A4AFmTg8p4Hmzrx+i7Q==","signatures":[{"sig":"MEYCIQDacdvFt2yxbvEw9chu0npb29xbut7tBqx7KZo+BfiNAgIhAM1jsdQBk/BgMLGRJvY3qBXrMwvEsXodFB7yjBm1sj4y","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260410123953.efe6d24","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29115140},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"efe6d24a7062227c3b898bab47fb440378c37e26","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260410123953.efe6d24_1775824826540_0.838814102331789","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260410124655.f1f30b5":{"name":"remoteclaw","version":"0.5.0-next.20260410124655.f1f30b5","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260410124655.f1f30b5","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"b9478b0fb35d948ba6557eae332b11ce06c710cd","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260410124655.f1f30b5.tgz","fileCount":2336,"integrity":"sha512-CWHzeX4PPzu5F3ulYXJRwgLpupQc4E577IFJMSNzoL92o7rIvC7GUSbShGEWiQVD0+GI+p2g/yhNDpjl5lSXvg==","signatures":[{"sig":"MEUCIQDzLKK6jWfX/wUAMoy9Udw1zPF62Hr8t3CdYuHUQVeZdQIgQQ3c75Cy1Ku2H1eYEUkWX3ML+0dyHdr36x3GlraPCgk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260410124655.f1f30b5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29115985},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"f1f30b54d6926fa96290b08d36d8c15146eee5cb","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260410124655.f1f30b5_1775825248149_0.6960348234791045","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260410140538.6f59dcb":{"name":"remoteclaw","version":"0.5.0-next.20260410140538.6f59dcb","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260410140538.6f59dcb","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f9aed0135a7c51776d8d9f63f5fe88ad7ab52d42","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260410140538.6f59dcb.tgz","fileCount":2336,"integrity":"sha512-KbPurMRDGBSf/I8HoNSCihNHaJFctjoD05j4xmOvTh3qUMyrFuc961FOMXmherLCUoMS875MhVHS+AYOidedTA==","signatures":[{"sig":"MEUCIQD/JP9uSKwqf9g1jj/foJka6Unasxs29v9SeT3ob+De1gIgT8VtgUby9Rk7P67su34Y/o4vvXXHRGvDoAhDsoQxr4s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260410140538.6f59dcb","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29112617},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"6f59dcbd7d21de6670ef08b641a71b3188ca6524","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260410140538.6f59dcb_1775829973007_0.1853124668027586","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260410141256.25dd250":{"name":"remoteclaw","version":"0.5.0-next.20260410141256.25dd250","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260410141256.25dd250","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"488437683140148413e779f8132258fb1ce45eea","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260410141256.25dd250.tgz","fileCount":2336,"integrity":"sha512-nxCQIaG70MjzZrFH3jvgsbx/+ViTHWz8ptela4QgkLcGNP6MHrx5jL4uZJH/oJzzLEcnMgibBPxgAkjzLbBmug==","signatures":[{"sig":"MEYCIQCRJhHT+Dzx5civHGdGGqPv9YRkLeIwJxBrTB6A3QzYkQIhANbvU9Z+8wLBMyPDfFBf8btaO8BzbRn/EP9r1x6xkEIL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260410141256.25dd250","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29100031},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"25dd2506ae82379e323e55ea31ca877013097588","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260410141256.25dd250_1775830410454_0.5277659234151479","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260410144652.4232c00":{"name":"remoteclaw","version":"0.5.0-next.20260410144652.4232c00","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260410144652.4232c00","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"cf43dbc0df47fd091526fe8fce59fbd69bc70979","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260410144652.4232c00.tgz","fileCount":2332,"integrity":"sha512-AM/rqIr3YeiFZpsIpviRrjhfW9abL5jjGCattNSJbvN0RXYmuCUES0gFkx+J32YD6xPqjJw//aG12DtUCNY+YQ==","signatures":[{"sig":"MEUCIG8Es5ly4pH2GDhBL2wxsw+JnfuEk0xHhQPy6S+MQtmLAiEAzK+xv9qhzmOXQoCUuCft3yGhqCgdpUqfqbu4E6Scsy8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260410144652.4232c00","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29091704},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"4232c00ad633c3a671dde3177b7b32abd2ad79dd","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260410144652.4232c00_1775832445591_0.5715362110124933","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260410145353.03eea9a":{"name":"remoteclaw","version":"0.5.0-next.20260410145353.03eea9a","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260410145353.03eea9a","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"a0671d0d748d33d5e3c0d1a41b63e9d38d04e7ce","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260410145353.03eea9a.tgz","fileCount":2332,"integrity":"sha512-YVxVLLkuOlmaBK4yikQ/YZopesp5jUzM51a/+sIQ/2ktGqa+aliyMaTKyeWySWGdI5qPUhq42x7kYcvE5y6WBw==","signatures":[{"sig":"MEQCIGuv+796KAzd7aNQZCk6gjRvDcXRQ0v8sgI45MnKBtiDAiBhbk0r3mTf0yp37m+ey3sItYZlfxksMnOKmLcH8MEGag==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260410145353.03eea9a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29066246},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"03eea9aa14072131e534b0a536780d02b3046006","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260410145353.03eea9a_1775832866301_0.27058377007713474","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260410150539.c0dc7a0":{"name":"remoteclaw","version":"0.5.0-next.20260410150539.c0dc7a0","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260410150539.c0dc7a0","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"55954cebfb5874df81c65e86278eb786f5e0bd5d","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260410150539.c0dc7a0.tgz","fileCount":2332,"integrity":"sha512-UEbYW5KgKWwky1qliWiW1xJG/tp9gvH1UgdkT3y2kKSJ2ZCby6DakwYHgyz14EHvdHDnhQEvVmbbbXo9Q+OK9A==","signatures":[{"sig":"MEYCIQC2j1NYLC7nz+5P9mLbq5HC7Oi2+R/w2akpnEJMnJAqXgIhANEVzwWvExjKNPE9wCmgNPaxrZB+d6qvQqKcffHxFjv9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260410150539.c0dc7a0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29060691},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"c0dc7a0cd5473c16d2b44bc3e25afb2afeb87f8f","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260410150539.c0dc7a0_1775833574528_0.6272479382931024","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260410155406.66a72ba":{"name":"remoteclaw","version":"0.5.0-next.20260410155406.66a72ba","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260410155406.66a72ba","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"03a91f859db4a7d3861b2595feae2948adbaf016","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260410155406.66a72ba.tgz","fileCount":2332,"integrity":"sha512-Dzy2VoVejPHCVWx6zXnD1I0cNDynKjMxO7TGK97t7h5hNz7l6YoLx14k5rko6NKbmY57ActKxjfTmlrFbhsx2Q==","signatures":[{"sig":"MEUCIBTNjPvx9f5VJ4cPEUZHHlyVkCJLl9HydpvVhrX8PJtoAiEAzJ20J+7IajKXNgifC+5K+Pot4aQsu7vn4De+iRTtJHA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260410155406.66a72ba","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29059798},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"66a72ba02475bf0aa29be5ec0445acf1e71a628c","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260410155406.66a72ba_1775836481505_0.0888563141782488","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260410160139.1fa1737":{"name":"remoteclaw","version":"0.5.0-next.20260410160139.1fa1737","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260410160139.1fa1737","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"49ef22097c80c67d5f6fad9c4b578a4e27038d01","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260410160139.1fa1737.tgz","fileCount":2332,"integrity":"sha512-5iDY82EKHPM6xKW0ywIdJkfoAV3sGYukn7pI6Dq6+5J9IDDMbSV3y0UIM+sfoYQ3qykPGxzVD7RFmb4XvPzj/Q==","signatures":[{"sig":"MEUCIQDF+lDaMDJEjGsVFzDvdikfiZgD8G7kySFzARMslJByPgIgFeKOJufhx8e2EdY/qCLGdRJYagDV2+bBHgVEo6g+nlI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260410160139.1fa1737","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29063080},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"1fa17373f540a525c8e2d0361d3286322c182738","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260410160139.1fa1737_1775836933647_0.5405301909353604","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260410160852.5daf644":{"name":"remoteclaw","version":"0.5.0-next.20260410160852.5daf644","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260410160852.5daf644","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e389d45b54155229b557a081cf9155cb770cf49b","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260410160852.5daf644.tgz","fileCount":2332,"integrity":"sha512-+Ou3fSUlZAAisXORcUtiUMXZlPD5sbg1oR0t65LI9U+aaC5iNUrn7J56at5z/gAv2i1gyiM3TkNR7K7wQ1Ee/w==","signatures":[{"sig":"MEQCIBQ2vm3boSYikyikYIHWxpO+Joc4MyFmY4UXx1waAYB2AiAiWsvrTg6tkSdnU/nKyQhjELK0vJr9mEkyhsRVmbcndw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260410160852.5daf644","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":28951986},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"5daf6449d4de2b0790d8e432118c1a92d75a4173","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260410160852.5daf644_1775837365530_0.34316554805064436","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260410174545.ca39dab":{"name":"remoteclaw","version":"0.5.0-next.20260410174545.ca39dab","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260410174545.ca39dab","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"77bc85d1c791db05754f7e6ab32f2bdad6f0a90c","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260410174545.ca39dab.tgz","fileCount":2332,"integrity":"sha512-sF2TqlzaqwQum8L9+MgleecBaagf8c/Q7EN+ViuJz9im/W+wHm5XY32kUd73X4uHv3cpuBkMYkPIPo3NguDYrg==","signatures":[{"sig":"MEUCIQCkXGjuqPg51wmzlSKjqWc5CDcuF/T184X5zDahlMTfOAIgeTQRMDQsyy0c+bIbFg6Fehm9BXWp6HYdTpekI2lEjJs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260410174545.ca39dab","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":28954719},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"ca39dab4a83f286efc66e02583c417400dea5030","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260410174545.ca39dab_1775843180372_0.24154190389800423","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260410191530.7af49f3":{"name":"remoteclaw","version":"0.5.0-next.20260410191530.7af49f3","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260410191530.7af49f3","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"0933a9c66cc54c7e03a84a90c685fefc3805bbcc","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260410191530.7af49f3.tgz","fileCount":2332,"integrity":"sha512-WV5a5kyu9XwE+xVQfJ/ZtsrhnW203LhNaJdvG/Mc4vpnrPrz+lSx/SDbkwtYjqHglivH1UF1ldnoNXrCZWSz0Q==","signatures":[{"sig":"MEYCIQDm8X9yXyBUTDP99b1xsijj6EPpYYwxEpwCi9Flw2+Q4AIhAN4q4/e08eHklUOseSkkKDoQVaT/JbllNN9vMvyFXYk1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260410191530.7af49f3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":28955349},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"7af49f34c0c3eefaa57e33107b0dc5f56d5bb9cf","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260410191530.7af49f3_1775848563276_0.7262045775295689","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260410222839.f328c9b":{"name":"remoteclaw","version":"0.5.0-next.20260410222839.f328c9b","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260410222839.f328c9b","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"c6bc91ffc394beb0abbf23de1afd4c4b7324264e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260410222839.f328c9b.tgz","fileCount":2332,"integrity":"sha512-l6XKsQnVUL0cWasDEEwBKGs1B4iYASIMsvXyZsICh+CGXTHxE612MFnUlyy2DLFytvtawA3M8e27htysuzajgw==","signatures":[{"sig":"MEUCIE0EpY142nuco4U63U+Fh0YmAPbZfVRAbjM6lgPTD9ZZAiEAw3xxECroHFJrt87ToKxwzi9iscUukKHUl2hiUZwUbXE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260410222839.f328c9b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":28989957},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"f328c9b450412d21b351ed33f5c555474d758422","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260410222839.f328c9b_1775860152604_0.17447798753668997","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260410223539.ddd98f0":{"name":"remoteclaw","version":"0.5.0-next.20260410223539.ddd98f0","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260410223539.ddd98f0","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f4a7d9184eda432b4c72701165304dc044a5cd19","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260410223539.ddd98f0.tgz","fileCount":2333,"integrity":"sha512-mBYngHZusBBVJTklKRqVlxynCpzUn+gg1unUBTNP1k5CmfL1czxqkhBhPwbhWyfYRV8GQIkw+dp31RSHThA+wA==","signatures":[{"sig":"MEYCIQCC4x+6tx+ZkszPndPKtHaIABaPcE9c8bU5arQU+0v3tgIhALgoOTgP/Tc1R9+U4Cg2fpn95vguRUO8gxXbOuRYV193","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260410223539.ddd98f0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29003733},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"ddd98f08cc5a37aec9ec1c7fb47a4c8c01ec2c87","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260410223539.ddd98f0_1775860573370_0.43949260129145884","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260410224316.aa79a7f":{"name":"remoteclaw","version":"0.5.0-next.20260410224316.aa79a7f","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260410224316.aa79a7f","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d62609c9ea3720e9beaafa2449158a780beb4443","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260410224316.aa79a7f.tgz","fileCount":2332,"integrity":"sha512-g+NWBkEigyDyXW+d9DWWsTYHLtYP/TlVlTkWA3E5oXhO8Zim4LUdugwO6ZbZwqXRTvHnGvZWrB1ckll5GbgSpg==","signatures":[{"sig":"MEQCIHI6JFkvzVZFM6ecubZa5lprDUTOhkwpVGqJf4gE4KbQAiACxz07YDRUoJFBLyfjOyXjFSSioxVoD6hbJBcF5aH0Bw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260410224316.aa79a7f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29018218},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"aa79a7f5f741b58e058807019a569c8b9c7ef15b","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260410224316.aa79a7f_1775861023345_0.7400861828433141","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260410225422.30ab50f":{"name":"remoteclaw","version":"0.5.0-next.20260410225422.30ab50f","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260410225422.30ab50f","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"13f9744c859abaf209740772ec85414a3d8257f8","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260410225422.30ab50f.tgz","fileCount":2332,"integrity":"sha512-FbAcoAqlvjtJrHcaq0Go60Eqdnwq/0vuBrgA7bBcj0PQaMxkvE4XzgLE+c3OgZ2MFKoyGwGtf5UPVf5fmljh8Q==","signatures":[{"sig":"MEYCIQDQCENjvs2p8TpXxTG/pzvDEhuG1PsBkjTK6Y6xbEggEQIhAKR+TJCHRMn7HpXzcB3r5gME+treYsuQiQJBGLnPH5JE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260410225422.30ab50f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29022613},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"30ab50f41731abc1f2aeba6fce7a36ca20c5f45f","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260410225422.30ab50f_1775861694372_0.1286129948753716","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260410230126.5a65124":{"name":"remoteclaw","version":"0.5.0-next.20260410230126.5a65124","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260410230126.5a65124","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"92e03e4b6d134961fbb96b82d03371af5f876a80","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260410230126.5a65124.tgz","fileCount":2332,"integrity":"sha512-POuKAQBZwDn0NjlvG5s7Rngf38shIs9dsp0Rdd4u1M4AD+N1rEBVL/ZAfQXswd1DIyAOTfIS50a298L9eNEldw==","signatures":[{"sig":"MEYCIQCH+KygEskw1HTWQipE4AaVbI+6mMAaZe1lBeXF0FAXDgIhAKfJp7XzaQuIxJW/4Yy2okOPS+T5tpp7/yLj7R9AppcZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260410230126.5a65124","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29040604},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"5a65124ee3fc1e00c7273fea49ddcccde1f2707a","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260410230126.5a65124_1775862119451_0.9026614078968211","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260410232032.ac9587e":{"name":"remoteclaw","version":"0.5.0-next.20260410232032.ac9587e","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260410232032.ac9587e","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"46f7c36864dd481ce2d496acffbd0b58ac07b1e4","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260410232032.ac9587e.tgz","fileCount":2332,"integrity":"sha512-mtI0tBluyg7coU0+N0TIGvQDiBmVBiSViNsIe/mF3k4wIDRPXu8DHxpRLfBl4cW12+jL23vzzAdq4VqgAyYZfg==","signatures":[{"sig":"MEUCIQCLHn40HMVLV1QCrc3tCJogk1V/DWWE0eyHJPd7O7XZWgIgalZpVAWL21jEx0McBw36+gXnWx7eWewde/xnLgZMLPg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260410232032.ac9587e","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29045280},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"ac9587e945be49b95bc94cfb312869145a864ac8","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260410232032.ac9587e_1775863264876_0.04056610121823678","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260410232752.536e43b":{"name":"remoteclaw","version":"0.5.0-next.20260410232752.536e43b","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260410232752.536e43b","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e267b1eb7720708c6860d483cb1cc09bd806afc1","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260410232752.536e43b.tgz","fileCount":2332,"integrity":"sha512-6tLzjx9/+dgreIM7Hzv5lbH2ZXp3vIUQNGpKHM1sT6gZapBiGxx5TpRN9eoSMkzAX3OOLKm9OplRW9hdFFK5nQ==","signatures":[{"sig":"MEUCIQCVbfk+VV0eHX/IH++9dMSTDlVPsBFaZ1k2C1Zkt/KC+wIgP0XyE3DqQC1FamWVEs3tEk5ARCxMC+o0RsPFuuCB8OY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260410232752.536e43b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29070998},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"536e43bff25a8a61fa04b941ff1ffa8b557fe604","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260410232752.536e43b_1775863706135_0.5974239215331134","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260410233450.27d5b65":{"name":"remoteclaw","version":"0.5.0-next.20260410233450.27d5b65","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260410233450.27d5b65","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"6d9377fcb15bfa69fe71dfcede2dba685c07e2ef","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260410233450.27d5b65.tgz","fileCount":2332,"integrity":"sha512-ioYRFNAUP5IrXvgQTfBlVuYznwfnrgr4aDj5OfWNIliTfmou/oBD/nMb0hC8RxXUhKFSHBeTwuUXZNcl+b5NLg==","signatures":[{"sig":"MEYCIQC8rNAnFt0p5SClX4ZBMJW9BsSXUJqoTfMJwt1jJh4kpAIhAK2LcAWrl9rphK61f8RWGQWMY8Ni9yCj5Yh8/X+wi6N0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260410233450.27d5b65","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29079647},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"27d5b654a5bef7445687d12e4a8ef4cea486f557","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260410233450.27d5b65_1775864121897_0.6098490025770633","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260411055300.e40b5ce":{"name":"remoteclaw","version":"0.5.0-next.20260411055300.e40b5ce","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260411055300.e40b5ce","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e1e7ffc6aea7ca05df162a8a28f1413aa3addaa4","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260411055300.e40b5ce.tgz","fileCount":2332,"integrity":"sha512-xU1FZuLOl09oM7gtexD/pYqW4dGu6FRwjw8Uptr3lUkYDbY3Ovngbyu1RrtQ2jKLvXaR0rZkeOtmnR5CGX6T9w==","signatures":[{"sig":"MEUCIHWDx2cjy75vkuKf6mdBXPLPlcinA8mlElURd2UnSFyeAiEAseV3MdDOP4JcR3VbTxrMlqbqulxvxWWeilfQpXp389w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260411055300.e40b5ce","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29077413},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"e40b5cea7972d151da5e1825a291fd2280adf335","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260411055300.e40b5ce_1775886812272_0.2106315211273031","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260411061139.dcabba7":{"name":"remoteclaw","version":"0.5.0-next.20260411061139.dcabba7","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260411061139.dcabba7","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d4857dc3e454664b1e33c4dfa7a6eb5ba6eb29a2","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260411061139.dcabba7.tgz","fileCount":2332,"integrity":"sha512-NaxwlOPoCEq2wly3Ka6VJaw8jTp5gxK8NpUSNb2B17c5P6OOS2OX913U1fKF3Wm7EMHYfK1KCtYTgpUjJNMP8g==","signatures":[{"sig":"MEUCIQCUbCzR9Bz2iu+A2L4kKoYubTJ8EXWStv893NNAfKUDRQIgWdNgskbB2zccpZnEJ2LhmFexPPmBIw3HcsAmvuGnW1g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260411061139.dcabba7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29080224},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"dcabba70e80b94b9ce0eb9d342e736cb671ef5b2","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260411061139.dcabba7_1775887933875_0.31410282255900035","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260411061845.939b1cb":{"name":"remoteclaw","version":"0.5.0-next.20260411061845.939b1cb","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260411061845.939b1cb","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"2403b1ebd5522965a2e7fe44be5aa01739607cb9","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260411061845.939b1cb.tgz","fileCount":2332,"integrity":"sha512-IqoLmBs0MtzdELiSYBxApPbdv6hksRHyC57FcfBPgqiFxt7OgTHTyWGj3PIWuecsLjpq7N2dSrzXcT+NK8nH4w==","signatures":[{"sig":"MEUCIQC64AVgAadv+GyqbGHkGiE4U5/MWj5FLgjKh6tkqI9zfQIgSLtNWQJZ86DppW0mHNIZrv06G3CUPolg7eHsNjIjWlI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260411061845.939b1cb","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29077476},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"939b1cb04b6b1fbb81479171c6d490215e557799","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260411061845.939b1cb_1775888358428_0.35991414672657096","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260411071916.080984e":{"name":"remoteclaw","version":"0.5.0-next.20260411071916.080984e","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260411071916.080984e","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"2fcff0a8786b658c522f1d9fe787ef9546dbc5de","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260411071916.080984e.tgz","fileCount":2328,"integrity":"sha512-Ka+3YFjN6qeObSBM6EuohyFV5aMe/yYZf8goRVsHGJke4ENUYgby/DcIs4TZC7pz/rngQME+2wWQ8u3cvgk7Kw==","signatures":[{"sig":"MEUCIQDjBhA6lDnx2y/SxISHDsrvsmj2YdXHsEmILxRzqucnrQIgEK6M3WH2Kl338QMuQtZXUDD7yF2fAZYoQ+gRjSnH24s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260411071916.080984e","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29075958},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"080984e3339a261dceeeead5c33ecf029f48b550","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260411071916.080984e_1775891989707_0.39122483079528547","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260411072624.974ccd5":{"name":"remoteclaw","version":"0.5.0-next.20260411072624.974ccd5","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260411072624.974ccd5","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"ab0e9e37136632f0ad7987321a0730a73f416705","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260411072624.974ccd5.tgz","fileCount":2312,"integrity":"sha512-KoEFJeDsaEDXVQlDYCBpNn/WnStu2NBS2Ah7rGqBzBgTTbSvObMJ+2C9kRRhOYCGSM6PGrma1koN55O57V2BDw==","signatures":[{"sig":"MEQCIEUf3BWwg9AYiC2PFr0zrKe+wPeuxRy5VnMwBuFwYdpMAiBTpaN/ykXDqsShpC4Lyz8gqTsZcNr/s8Dz0Wvi/xn1Xw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260411072624.974ccd5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":28971949},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"974ccd5cc516b155a0eaaab51b78b6dc3d472c77","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260411072624.974ccd5_1775892416451_0.775646058300423","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260411083148.4fd565b":{"name":"remoteclaw","version":"0.5.0-next.20260411083148.4fd565b","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260411083148.4fd565b","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"65e6e3632ca5c2bd45f8e6759aaa5f9ef475a658","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260411083148.4fd565b.tgz","fileCount":2312,"integrity":"sha512-EZz67sSR5GAnzTpdFq6MEiItH+CaX2N6Ko5yRKUuNCEXcEOoywk0DaWnNZs+kOQx65ix8ULyyEPCPy4dsqHPRw==","signatures":[{"sig":"MEUCIQDttZE/vr4zXzbL1xYApDhD0giFN9fDkn9AGt5MGA01HAIgOM5Tk85w0w+hPWSXyAov2eC8PW5tW6WLLHI4DNhKRcE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260411083148.4fd565b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":28959480},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"4fd565bf89f29f1a93b83f033f99e4a535173884","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260411083148.4fd565b_1775896341465_0.5014400722469643","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260411083908.d60ca6e":{"name":"remoteclaw","version":"0.5.0-next.20260411083908.d60ca6e","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260411083908.d60ca6e","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f04b6b7cf36fa3cf1f9167d9e697547d98973f58","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260411083908.d60ca6e.tgz","fileCount":2314,"integrity":"sha512-Ub/9sPsMtxaW0bqMXRY8sh8uFI3yetgGse10j/Z9cY4XtK2hg6kX47+EBKDbyV3O+mv9SqrRlQJTx11sDBD5dg==","signatures":[{"sig":"MEYCIQDW+4Y+/Ja3ektR7/JSNZwVEg3UxHZvw/DDIADtBijiNAIhAKI7m69+Rv2vUm2BdXj864UnYp1ZTJvA1I8J+KiVYQeA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260411083908.d60ca6e","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":28974076},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"d60ca6eb4d911c8eec4cd9a0880a9e17e0a3d62a","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260411083908.d60ca6e_1775896781643_0.19475463506137913","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260411084616.17529df":{"name":"remoteclaw","version":"0.5.0-next.20260411084616.17529df","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260411084616.17529df","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"9415151eac12623cda61eb61d44eae7b9094282c","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260411084616.17529df.tgz","fileCount":2314,"integrity":"sha512-b43WmAz8vkxPhFFwb853W/o5ylAvAE2WaX+EyxizY0j4hHFYyvtxXyqd3qRBoHOpo0hQsRSKcH6nlnHyceec8g==","signatures":[{"sig":"MEYCIQDFTvA7Vwvmpn6nKSOn0HpfqHBPnz9yC9CijZfACw6MfQIhAL7kf0t/TE76NAuioJIxifT6apiAAZ9l7qVPvBovnIhU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260411084616.17529df","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":28965585},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"17529dfecbb51f0434ada559ba8be61819ddae50","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260411084616.17529df_1775897208292_0.8310576360465378","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260411085326.caca5bb":{"name":"remoteclaw","version":"0.5.0-next.20260411085326.caca5bb","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260411085326.caca5bb","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"a26b7fa611b77f093e0c966df8fc1331482ef59e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260411085326.caca5bb.tgz","fileCount":2315,"integrity":"sha512-byqEmC6IgWzKCRViwqBN192iIZXDNjiNZP1ZpmgvxCcK98V0SGX1GdXSrzbej6KBvh8YQxH14NWKG2hfutA8vg==","signatures":[{"sig":"MEUCIQCFIXPZS10HSpHb3UYEnNmEesp1wTrQ8ceHwLM3SdDpeAIgeCMwMtU2903BsAeKKCeoQ6do2sfgY5WN1SIlZMh40uc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260411085326.caca5bb","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":28974283},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"caca5bb6d888ee83cdeb378c032ec28b417e1651","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260411085326.caca5bb_1775897638213_0.32070538395477577","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260411091123.f7e9156":{"name":"remoteclaw","version":"0.5.0-next.20260411091123.f7e9156","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260411091123.f7e9156","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"6124108c8737aa69f5fb7e8be1c4ea83f9e8d3d3","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260411091123.f7e9156.tgz","fileCount":2312,"integrity":"sha512-V1q5r4519db39yo9aSixWL/vnbNx8qhGcPk4ol5k/AQB/8tGieMal43/m/+h73Z52T7RrUxq4ULqssk3G71zbg==","signatures":[{"sig":"MEUCICwvJ4rTu6sH6DMB5P/mCzsX576iKfkINI5jN5UXU/aAAiEA4+2m3nu02zm4rqe94MdXEYtJyf0hinyZhyeFoEba1NM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260411091123.f7e9156","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":28951575},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"f7e91569f3aea4f1ae5838009beb93e87a4e3472","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260411091123.f7e9156_1775898716694_0.18682025388461132","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260411092048.f749ed3":{"name":"remoteclaw","version":"0.5.0-next.20260411092048.f749ed3","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260411092048.f749ed3","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"991ca5678b100c98f9f2c38a6b09317ba654953b","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260411092048.f749ed3.tgz","fileCount":2312,"integrity":"sha512-iOixKQsU8NCUF8Jc3zmOjIlHksUVhkTzQsYYlhYcqDGS4xKGAkSm/gDAt9ckYSYRHN2XqwnD1uWWNbaG8H1GnQ==","signatures":[{"sig":"MEUCIQCiwpId3dgJNVmahdMOA7GPyqUfYVeSjajS8tswKtgKfQIgMMcX1hECa3JjwA/iRuE86h25zkUT0eHdCmAo+yH6lrY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260411092048.f749ed3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":28942835},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"f749ed3fb64e1e8bc779f8b864c0dfb054602ca8","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260411092048.f749ed3_1775899280422_0.21531137859479443","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260411094630.2238b6f":{"name":"remoteclaw","version":"0.5.0-next.20260411094630.2238b6f","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260411094630.2238b6f","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"3d4e63152e469b7be238fa3dbff5c77e25d8514d","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260411094630.2238b6f.tgz","fileCount":2312,"integrity":"sha512-J9LDH0MZx0zHZoOUbqZpz8C//lqJvsnizdd9KeWlJAJ3nROdeCDMRS2sSWTfuu/BpWljL+PN0PrLcZs3q9DAuA==","signatures":[{"sig":"MEYCIQDW4/+CwYIkORykFBrhZ+9tS61sld9j3z7vThmFFS1vVwIhAPpGKspnduRSF3Y6crh6jc4Wu4OimSEyfTzd8W/J2ZRb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260411094630.2238b6f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":28930883},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"2238b6fdf7a451a5c09c693f5ac699c099ea4ed6","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260411094630.2238b6f_1775900823914_0.052642597038152106","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260411095557.593b371":{"name":"remoteclaw","version":"0.5.0-next.20260411095557.593b371","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260411095557.593b371","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"3e02e7a7d3b57380691f491bab76245ba62924c1","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260411095557.593b371.tgz","fileCount":2310,"integrity":"sha512-P/kprrbKXP7vzhzcqFHjqBfnKdtUhIkkIHXR8jOCxr9JODhsJm1R3ZBiB18KbLm4BO5SiPxn1gkutWUmjzUcKw==","signatures":[{"sig":"MEUCICMDGYwMR4OGCW88TOYZ8M/FiA666rb9M6koxkoE3Xf1AiEA4Eb4bfweXzFbtnjqOBCavk+ABfBCN9+v5d7Y+lLcBpM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260411095557.593b371","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":28879891},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"593b371aab871a7859ce3d10fb49c1bac128541a","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260411095557.593b371_1775901389391_0.5450672917979726","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260411100715.7ebf27a":{"name":"remoteclaw","version":"0.5.0-next.20260411100715.7ebf27a","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260411100715.7ebf27a","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"0529459da03db3e12270c87ff45d23690ad5180d","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260411100715.7ebf27a.tgz","fileCount":2308,"integrity":"sha512-soGmLksNtaSYRc36XkaEDxmHVsL0Ra89k8SoTeW0t/Up/StdNjaJagPQ5EpAFJgTDwNs3Y2kqM1FczxNTCHd7g==","signatures":[{"sig":"MEYCIQDF83zCrtmD1+i6nPvn6c/JdSiW1lv5J6W3HVUK67Z5XwIhAPQQjiic56jQ6ShJ8iumSa69fOvPkwmEVLg22IjWdpOh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260411100715.7ebf27a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":28872050},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"7ebf27a6551edf7488af213d62b460044e66bb35","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260411100715.7ebf27a_1775902068692_0.6188274878692293","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260411101443.a4ef6be":{"name":"remoteclaw","version":"0.5.0-next.20260411101443.a4ef6be","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260411101443.a4ef6be","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"8f9bb73c867da29aa2352217734694a853b90fac","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260411101443.a4ef6be.tgz","fileCount":2308,"integrity":"sha512-PIp8eHTKyTUotGvdeWnXB1aboLdUVFe4rY6S75OCQ9hI5NGWsEyM2wCa/rCsSo0AFrcgtsYsjwzQ/WICQNhDvw==","signatures":[{"sig":"MEUCIDP5Z324rnk8qUyaiM5psNszoNHAqNu6khw9JlyaRLh8AiEA92+JVShBD2HFjYKtz6UVg8mJoobn4OOVT5kbnTL+Uxw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260411101443.a4ef6be","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":28879147},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"a4ef6be23190d321163b915798bc1d49eb1e6efe","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260411101443.a4ef6be_1775902515521_0.13497734170785303","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260411102259.cd6324e":{"name":"remoteclaw","version":"0.5.0-next.20260411102259.cd6324e","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260411102259.cd6324e","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"6f7fe93c455c5ff5c7f30e83b60bb356f6e6df42","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260411102259.cd6324e.tgz","fileCount":2308,"integrity":"sha512-xuu3kbkNIpg5kiBZx1QqcBcPEyAZOBMAbNj4Ylrb7my1Q84XH+P5NIw3ly8mxZVDocZvkymZ6TQxCiILLk/Stg==","signatures":[{"sig":"MEUCIF1LoUtOVBz5vdGa8TdsroC/dd/wvRF9Islhd4OSirHjAiEAzcK1LxsP0Xw2oV2ZbRybcphqTjdPrS9sFSTgBqzgW5k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260411102259.cd6324e","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":28883127},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"cd6324e7a7a391266eb1896ed058705f689503e3","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260411102259.cd6324e_1775903012099_0.20034138297657078","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260411143022.e7f555c":{"name":"remoteclaw","version":"0.5.0-next.20260411143022.e7f555c","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260411143022.e7f555c","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"dac54929a8d8abe585177368ec9c775736b7889a","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260411143022.e7f555c.tgz","fileCount":2308,"integrity":"sha512-SOM5yAo12pmTIZit4VkRavukepJrCCqgaOEpSmlr7+U7/VEvPCTy4aY0AKP+mrXyBz8+b75r6NsxqKg/7sQ6Ag==","signatures":[{"sig":"MEUCIEguhc+TZ0hSIREx2s1EdiIklvfx8xVZpHKnc0IG0C/uAiEAldkmMsmy7kpu4v16bTinaFhG2HnI+mnwkXwdyvfM3JI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260411143022.e7f555c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":28878680},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"e7f555c9ae9d808b092563081094c417880192a6","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260411143022.e7f555c_1775917855433_0.48820697476892483","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260411143745.97a49f2":{"name":"remoteclaw","version":"0.5.0-next.20260411143745.97a49f2","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260411143745.97a49f2","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"685b056951b09857510f6cb70a238b906e28fe6c","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260411143745.97a49f2.tgz","fileCount":2307,"integrity":"sha512-wu2QqVRtIV3a3z2zOx7ceJK4EbdxBSEWL6rqkiRykOOyTts6hE9v+LwFEF9GlcNxAuf5ra3SXNxVQOcdlq7vrA==","signatures":[{"sig":"MEQCIBU+8Pe1OuvlKBvEllnMu1jd8xHjIfTLM+Pnbw8Dj9WsAiAZwHJZJBa095EgBXr7pWKY4hkmpuFyCCzenzA3oLq1XA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260411143745.97a49f2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":28862638},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"97a49f2ce001b26babc6e034b28db9fed80a2ac5","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260411143745.97a49f2_1775918298341_0.11885853304080052","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260411150034.76b45c3":{"name":"remoteclaw","version":"0.5.0-next.20260411150034.76b45c3","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260411150034.76b45c3","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"ea47ab1da5772c25b4fde047671c34f4102d4a36","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260411150034.76b45c3.tgz","fileCount":2307,"integrity":"sha512-Y/WlhJzvCcq7gdUr0beRk3mAv3i8khyC6iWw2NS6dc44wyvXMqm2ooG6fu+xiJeb8P82FesICX0NrZo2iwK6VQ==","signatures":[{"sig":"MEYCIQDCnyY5bH0k13ZujF0nYRlyHpd3K4kMYcHbSi8bx6g3YQIhAJTst8VkdnunXprHAr6XoVw1PRFDmG2zIAv0h3pJ5sM+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260411150034.76b45c3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":28861959},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"76b45c3f0d06284839b1cd0366b2fd9ab0327c80","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260411150034.76b45c3_1775919668313_0.3932179038213697","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260411153452.4cd1b14":{"name":"remoteclaw","version":"0.5.0-next.20260411153452.4cd1b14","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260411153452.4cd1b14","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"7193d63628c497634e898718e9debcabe03769c2","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260411153452.4cd1b14.tgz","fileCount":2309,"integrity":"sha512-qQ/9RE+OJV8+l04qbZO6SBkY6Eg9BKm9ASy5oMnmdIr/iOO8kcp3B7ruBHbUr9MzVvfugbwSXCwtP7BJBTA7dA==","signatures":[{"sig":"MEYCIQCFDXE+Q91N+Ogis2ngQrG2UbaL0VJHlKr4wctIr06vmgIhAKluzXOtHbM5Lj2mbBY7vhS9FjCujhxAYQ5nuP+BfOr/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260411153452.4cd1b14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":28853366},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"4cd1b143e1c0071fbce4657b9fb58e489a93621d","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260411153452.4cd1b14_1775921723652_0.8123832950441607","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260411155527.a8c7325":{"name":"remoteclaw","version":"0.5.0-next.20260411155527.a8c7325","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260411155527.a8c7325","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"8556cd30013cb4782cb9586de0f9a4ebd49f0158","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260411155527.a8c7325.tgz","fileCount":2305,"integrity":"sha512-x9a/x6CJ9b6jzWNx+wMytoE7se81o5+oq4nIGJkfyZjaHYDP+55rr4kFCj0fD90PGbj4OOXSz4565tSixf9JMQ==","signatures":[{"sig":"MEYCIQCZJ+BFNIVneN4d2Jov/fkWmdD1dxQ4baOvdtpp5jGwtAIhAPhmZ4AafnnkPjRugfRyVDhGaR2itQj7gQlOptXENJ0F","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260411155527.a8c7325","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":28840296},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"a8c7325eca1123b7d9efc1ac23e6a710625a761e","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260411155527.a8c7325_1775922960417_0.654087909983823","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260411161543.a82c181":{"name":"remoteclaw","version":"0.5.0-next.20260411161543.a82c181","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260411161543.a82c181","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"9e69ed5266588711e4110b73d229d71f16be2d19","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260411161543.a82c181.tgz","fileCount":2305,"integrity":"sha512-fjU/V4sb6FgLcupfDbpcI4Oc9JEagc2JQS/P3VMtSdVwtNvqviD07q1fF8qrxIrUxvBxTBusq+yrkedFEk/kdg==","signatures":[{"sig":"MEUCIQDESlL3i/I9J6qKlFuIQFwztomzjFwCsJwimvbJ/n5YlQIgYdJhJH0rV4wL7Bi0fQLQGi+mVoohgR+OjHnJwm/hy1c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260411161543.a82c181","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":28823909},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"a82c181fb8e425192754a43e076c8e9f5cefccda","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260411161543.a82c181_1775924175177_0.31711462979245253","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260411163403.f1d68f0":{"name":"remoteclaw","version":"0.5.0-next.20260411163403.f1d68f0","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260411163403.f1d68f0","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"7e9a3c6444bca052e99a524ea3b3a012355f4ead","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260411163403.f1d68f0.tgz","fileCount":2305,"integrity":"sha512-av6N/e9smx302WmwqKP1xOw9IXgl9prrsb1ia2P84+StXWrCR7ToId6Y02meLyi1+mWXUZdS97A5NRlAwEeZsQ==","signatures":[{"sig":"MEUCIAKgIibYJgZcP021ucYw3iWkY08gmcThsUr0Qm0UZSGtAiEAyqI0CVX75HSEJC7vNxRvXgUKYQuGzjKdGh65B6t9BHY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260411163403.f1d68f0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":28741773},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"f1d68f0f51ffc06bbf8d13551313ae8e3bebfb01","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260411163403.f1d68f0_1775925276229_0.9099394805182677","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260411185528.250363d":{"name":"remoteclaw","version":"0.5.0-next.20260411185528.250363d","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260411185528.250363d","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"bb34078435af042518f1edfdc4f1d0042bf0702b","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260411185528.250363d.tgz","fileCount":2305,"integrity":"sha512-a31JYbGqVJYVAeuS6zHlsOdOlgx45NDMh4hGuSQSPF+EPLbj4GiHTWYatf/UQSjghRc6SEwRck/Czu8/HlPr9A==","signatures":[{"sig":"MEYCIQDxiiY2F+UQft3OnNYOX649baT/bSRQ99bi57yCP3Ke7AIhAPvES1MA/C4Aw27ZTb5Vt3UJ8K3u8/eUjH3MYFHLVUpr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260411185528.250363d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":28744454},"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":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"250363d79b0dfcbd2b3acd8b6b3844cb0d40aac1","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","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","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","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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"},"upstreamVersion":"2026.3.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260411185528.250363d_1775933761001_0.4022959635393484","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260412043844.9ef1894":{"name":"remoteclaw","version":"0.5.0-next.20260412043844.9ef1894","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260412043844.9ef1894","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"5c10669cb2a92b87434033c2d52981c72d44eaaf","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260412043844.9ef1894.tgz","fileCount":3129,"integrity":"sha512-2cllMNRcnDO+SnsyYk20n8m51iC++Stzv+dqqZIheWDz1C26IYwcBqN8QEcMv59hrWm/x+zIImsdheVcBVu81g==","signatures":[{"sig":"MEUCIAEICULa0Y8TKU175V/UEgfRJyS6/W/zKC32Vv+tA3MUAiEAgv5owrt0y1nN9PdNo1t/kYFklT/RIqotiBuFKWKXtOc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260412043844.9ef1894","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":55970325},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"9ef18943dc7ba3cc461d8d252f4c3cfc7c44dacd","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-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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.4.624","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.41","https-proxy-agent":"^7.0.6","@mariozechner/pi-ai":"0.55.4","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.15.0","@modelcontextprotocol/sdk":"^1.27.1","@mariozechner/pi-agent-core":"0.55.3","@mariozechner/pi-coding-agent":"0.55.3","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.7","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260412043844.9ef1894_1775968767620_0.898476587004464","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260412044707.ab24eaf":{"name":"remoteclaw","version":"0.5.0-next.20260412044707.ab24eaf","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260412044707.ab24eaf","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"4f49071fefd9671e611c19511e45a38a579ff7ab","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260412044707.ab24eaf.tgz","fileCount":3129,"integrity":"sha512-iniaCMxpy6j/wiCNts6c+SY66MpuMEaoPOY6agh3zo6I8fzMxKJqUu2zaImwulzM4OLNi8oL5DLptHTJr5p/eA==","signatures":[{"sig":"MEQCIB3qTbX11FC2Q2YAzN39L7O1hdBaXXTymaNRtW04P8loAiBcc9e3xY49ePgb3HTzWYxfvSqH2qOdHOQiKcv1CeRb0A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260412044707.ab24eaf","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":55970321},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"ab24eafe3d8205f5edd99f29e88d4eeb7cf04274","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-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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.4.624","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.41","https-proxy-agent":"^7.0.6","@mariozechner/pi-ai":"0.55.4","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.15.0","@modelcontextprotocol/sdk":"^1.27.1","@mariozechner/pi-agent-core":"0.55.3","@mariozechner/pi-coding-agent":"0.55.3","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.7","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260412044707.ab24eaf_1775969270086_0.7054902869554649","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260412080401.e07d5d3":{"name":"remoteclaw","version":"0.5.0-next.20260412080401.e07d5d3","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260412080401.e07d5d3","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"5982c58cc756ed909df423c09d0189f070149a54","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260412080401.e07d5d3.tgz","fileCount":3129,"integrity":"sha512-sTnjY8RBLUWYaRwP+Tu/6HMVQu/fhyGFKPzzsGq+B5su07qece3PqBwaUANwOPrzg5bGsaLokHAMkxEW3YZwsA==","signatures":[{"sig":"MEYCIQDF6s9iOQCDND3wsKhhWTlY/Gi+Z/TXspWheBj+/jkF0AIhAOcqINWgPyRui5tgi31pvTRZqMYZAP4+6WX5gap7PJUN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260412080401.e07d5d3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":55963591},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"e07d5d3a5c586bc036a7c3e3e5454880a816d2ab","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-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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.4.624","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.41","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.15.0","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.7","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260412080401.e07d5d3_1775981083382_0.34030989647892507","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260412141831.b6a92a3":{"name":"remoteclaw","version":"0.5.0-next.20260412141831.b6a92a3","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260412141831.b6a92a3","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"16f6744c79dfef963a0b68118190fdd8e2a2375c","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260412141831.b6a92a3.tgz","fileCount":3183,"integrity":"sha512-Cj/fqZVv1/M4xTpw1dRcKHqlCQJGDtdih7LEk3trtTdiIYnD0iJnLhbjUxEK5HGoBoHEvUXD2etEVFsDz9r9Xg==","signatures":[{"sig":"MEYCIQCJCFZZ6kFqsY6k6ZzhcuUFJUFZFtft/2h4DhVmm20YZAIhANlKYWICcrxlsSexvpCCaIHCFPQkTp0cPeqtBWMG0rwv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260412141831.b6a92a3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":59665526},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"b6a92a37193c2688a2a32cda75180ebe19f94f9e","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-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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.4.624","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.41","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.15.0","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.7","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260412141831.b6a92a3_1776003553618_0.2694328638754415","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260412145630.219deac":{"name":"remoteclaw","version":"0.5.0-next.20260412145630.219deac","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260412145630.219deac","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"6725b4c5d30f163b44b6b5ba6bf60b59b4ee7f8f","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260412145630.219deac.tgz","fileCount":3129,"integrity":"sha512-vSyFDc7ywX5qdwFS1v3FCP4R3xQlRn+lveUx2cH5+43MQ6GK7RD2n8MeoO4lsmQmCFGXeJjvnUcOcUBVsDi4Tg==","signatures":[{"sig":"MEQCIEs8ajbU2vWv8udc642xnje6eutBEOJbv6fuoJbEn4KaAiBsjEcqIspsxQkg+RVOtBpeq7aqJk+gv7U2+W+OhI4bQQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260412145630.219deac","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":55962733},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"219deacb609f78fc4ca56346d10d0480ff2700cd","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-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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.4.624","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.41","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.15.0","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.7","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260412145630.219deac_1776005832516_0.695333815236421","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260412160820.f115223":{"name":"remoteclaw","version":"0.5.0-next.20260412160820.f115223","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260412160820.f115223","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"3218c955480e821ed48942afe203172bbcb7991c","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260412160820.f115223.tgz","fileCount":3131,"integrity":"sha512-6eDzaus7PV2Ho7TP3pF7JRm1iTzYsoMp9UmMz4VefroxMpncg7yiemWoa/Sc+IrckRpRgN2pHOC2jLh1Ux8ICw==","signatures":[{"sig":"MEUCIGPB01h9rjTa2oYKtcACnD3NxEJL8mjvtRhCzaxaudLVAiEAqfwvSKRIKrLMCEHbF+2p4B1NMC0gFfI9dhxrMB+tk6w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260412160820.f115223","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":56077480},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"f115223f0c0b08c20304de4e7add804d797dffba","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-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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.4.624","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.41","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.15.0","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.7","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260412160820.f115223_1776010142179_0.20660421817330277","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260412170140.c923443":{"name":"remoteclaw","version":"0.5.0-next.20260412170140.c923443","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260412170140.c923443","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"3f6d7130897b5eb36b03eecda8a8ed66cde80a16","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260412170140.c923443.tgz","fileCount":3185,"integrity":"sha512-R7oQ5azozmNuptU79vBVNJy3Q+tujvcgYk7crkBZWeTEsY3Q0o76tdWDkJuMoOxSWww6FKvCCfR6EDOtxBalPw==","signatures":[{"sig":"MEYCIQC0uSKPjA3vwmq7oAs9zAd/kYz+o0NArabY6VdlNLzVJwIhAJ6rmx+UUV3a+G6XYISaMVnD5OnUORKf4uopq6Y4cCq/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260412170140.c923443","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":59800928},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"c92344326e1406848d9197fdff2f4434a0aa6df9","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-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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.4.624","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.41","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.15.0","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.7","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260412170140.c923443_1776013342074_0.39838641044988","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260412173320.89a7977":{"name":"remoteclaw","version":"0.5.0-next.20260412173320.89a7977","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260412173320.89a7977","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f85020cb4a3b44fa6d9ce715bcbf0ac244ce3623","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260412173320.89a7977.tgz","fileCount":3131,"integrity":"sha512-v4izCNojPKsewXsDaqxsUuijOPJPQEYFzUMlndnlSd4BscTl/f1HsUfAziwl5vj5i+0Rj3GdF/o6ujACrqQ1Lw==","signatures":[{"sig":"MEUCIQCVIh1GxPJ6jSIl6tHJjBwTvnWpBmV2SK1/s24Vx4qbLAIgCPXNbqqWYXWmfzL1sPfQ+L6OKgLrkSfQ7CXHS/M22z4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260412173320.89a7977","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":56089755},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"89a79779879d97e5bb9bd6af5a5caa364c168d5a","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-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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.4.624","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.41","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.15.0","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.7","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260412173320.89a7977_1776015243261_0.7870569487200434","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260412180135.7549f44":{"name":"remoteclaw","version":"0.5.0-next.20260412180135.7549f44","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260412180135.7549f44","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"23d0ced5943182790372165a6fd9a1aa717dd037","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260412180135.7549f44.tgz","fileCount":3185,"integrity":"sha512-4AbbDfL1kPRhxftlIbvoUxjRG15v8fQ6RWkMsMlajZkGRCIr9tjnySnJHgztHrTsc7OkWSNcrF3xmy59Dhn1uA==","signatures":[{"sig":"MEUCIC4kOWNnBXo+RBgDaYZhTD8wiJdj92YPGcs1iYatPgyLAiEAkKxAaZKGZULlvgAT4aM4s0cR2JwncWmdHR2kIBTyg4Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260412180135.7549f44","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":59824016},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"7549f445a81b13f65b6eee69c4f6f628c7ccf72d","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-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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.4.624","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.41","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.15.0","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.7","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260412180135.7549f44_1776016938262_0.020091625221387854","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260412185332.ed05d16":{"name":"remoteclaw","version":"0.5.0-next.20260412185332.ed05d16","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260412185332.ed05d16","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"07ca5482c306b4ddff660c2757b2d86497746123","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260412185332.ed05d16.tgz","fileCount":3185,"integrity":"sha512-bfIRDORwVxvKX/Lr7uu/TpNLqA9fQjuOoyKUElyRq4P8GdKBERd42MRxZVYRo0ahNzBX3G5pvm94hqm94MaDjg==","signatures":[{"sig":"MEUCIFBKDvlpXIf6qOExYdcOmVhnezfd+5VSP+GusidF4rzxAiEAt8tzdV8dWayamWsQHwagVL5YxKqDJGyKBbQ8+4WErW4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260412185332.ed05d16","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":59823496},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"ed05d162b63b8a6a1094fad19c634fc433c7d573","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-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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.4.624","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.41","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.15.0","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.7","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260412185332.ed05d16_1776020054114_0.03006907927210145","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260412195431.0b31686":{"name":"remoteclaw","version":"0.5.0-next.20260412195431.0b31686","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260412195431.0b31686","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"1d68a4e1f06c61364e73f504e78a21591b9930f3","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260412195431.0b31686.tgz","fileCount":3131,"integrity":"sha512-xUZ5c+ptguc961TfMYM9pITidE9pyIYWv6i7+esl50yWEtWhpVBb0MiHYBGkodiptzSLNdcJwX+cbz3avQAMvg==","signatures":[{"sig":"MEQCIHZscIRf7FjJQ8cPjdDg+5nJ3X4bm3Y7YzygjoTCgPlaAiADmA14nGz84dJLf8M0PLnFM6WszmItd5ZadjhC3Y5cVw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260412195431.0b31686","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":56122109},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"0b31686f6262ada4985e3d067fb37bfacb145976","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-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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.4.624","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.41","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.15.0","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.7","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260412195431.0b31686_1776023712213_0.12198384516512539","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260412204210.3885073":{"name":"remoteclaw","version":"0.5.0-next.20260412204210.3885073","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260412204210.3885073","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"19291054056b672037e2dcc8cf9ca851910dbbdc","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260412204210.3885073.tgz","fileCount":3185,"integrity":"sha512-KkGD4eScba8RbORBDlY92NdzOvL6VSOe2KluNTPyLxw6L0o+SBODqK1ep3zt/lO3h+lrbmSsHNPPdPGadB4y5A==","signatures":[{"sig":"MEQCIGD/c4sGZlRjbGDAoFDJkXyuvS8AyHJOtcmdiWgYgJ/ZAiBLao4WEmVfgO/c8hwSVzXZOLNtbPIzJs9RseDOed0vFw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260412204210.3885073","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":59837968},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"3885073a0271bf7935a3454d7f90db2809557c8c","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-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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.4.624","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.41","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.15.0","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.7","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260412204210.3885073_1776026573113_0.7447233830282343","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260412232413.675e390":{"name":"remoteclaw","version":"0.5.0-next.20260412232413.675e390","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260412232413.675e390","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"7f383e225a44e0ee3957342b3a3281c6ea7e2de5","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260412232413.675e390.tgz","fileCount":3185,"integrity":"sha512-1eG2QiKOsOY5k2xW/ECLRNz3EpciV5qvvdq1zvt8anz05qdIx5fiWXrRWabM3iksMyg1AB+VuIqf5f4CexqAyw==","signatures":[{"sig":"MEYCIQD1x33ohWV4YgkAkMXaux/3Lgx45niIS35eswV2QRmjNwIhAIu52P44li1GqP2SnUHZPFkpuvBZ8Ktg+iVH6WSr4/3s","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260412232413.675e390","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":59835032},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"675e3904867a0be858173f5b582096b642db761a","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-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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.4.624","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","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.41","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.15.0","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.7","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260412232413.675e390_1776036293808_0.5756506327155548","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260412233214.74026fe":{"name":"remoteclaw","version":"0.5.0-next.20260412233214.74026fe","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260412233214.74026fe","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"a178f7cbe82d7322cb0318be18c423f444b670f6","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260412233214.74026fe.tgz","fileCount":3081,"integrity":"sha512-3o9/L5VzhDLjtrgOSnYeWFkMf5+dZYvCzjnWU0ChWsx8QojvtsgllU8Yh7Xsz36bdXEcjs0B/Xt+RrZE7YJF5g==","signatures":[{"sig":"MEYCIQDXFoZCvKLwbjLa4rms5yKq1QFyOGG2JOBWA/ekDchZEgIhANWLSEPv6LbSNuA9x2SNRLYMIMevDf9P+Kt9WwtiE5ai","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260412233214.74026fe","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":54904555},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"74026fe9023d1a70c90a96b8c548fe733b07000f","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-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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.4.624","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","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.41","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.15.0","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.7","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260412233214.74026fe_1776036773907_0.7518889863425806","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260413001229.e2cf15c":{"name":"remoteclaw","version":"0.5.0-next.20260413001229.e2cf15c","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260413001229.e2cf15c","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"7ad1e344ce33fc8b898ad63c21d2232d43e3ef69","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260413001229.e2cf15c.tgz","fileCount":3115,"integrity":"sha512-Ic15M86W6TmLeLzKk5HDKZq9lsYWgQd5MF24Nyoj6s0Nn3clKujKxJryj2jygEMeMkMUzXDejPYS7htXSWhrAQ==","signatures":[{"sig":"MEYCIQCKCbbSEz5mP8YkAPXBMEibjP1B1xMuaQVhCo94opfW+gIhAMfgC4OobC/Vq/1WZ6DidRx9uE61dJMWsilvgv6DPKD5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260413001229.e2cf15c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":58488903},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"e2cf15c94d0941e0dd66cedb3d99e5506572947d","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-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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.4.624","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","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.41","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.15.0","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.7","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260413001229.e2cf15c_1776039191217_0.5306871702280409","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260413002025.1e9ff20":{"name":"remoteclaw","version":"0.5.0-next.20260413002025.1e9ff20","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260413002025.1e9ff20","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"26a1437a6b16fd19094f68ec12df6d1eed38f008","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260413002025.1e9ff20.tgz","fileCount":3052,"integrity":"sha512-USzYHkiWpMk+U9PhJN+z2WoacMtKYwnCRgOSEMnnNexg81MyFPowXy9aib4HWCbvhfmNXqMs+GHU8omr5g/xPQ==","signatures":[{"sig":"MEUCIQD8039wlknev846TuRDpn8m740CM5CZoRH5ln2xguWaRAIgWYjS1GO3RRZfm+cxyb3rHB7ApoJ3g2L18HY+jd/jQxE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260413002025.1e9ff20","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":54143870},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"1e9ff20876b39485fb76056cde7744b1874c14ab","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-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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.4.624","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","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.41","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.15.0","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.7","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260413002025.1e9ff20_1776039665809_0.007009742681546749","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-next.20260413070921.44b4f92":{"name":"remoteclaw","version":"0.5.0-next.20260413070921.44b4f92","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0-next.20260413070921.44b4f92","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d1ea9a39950daa33d407fd59c368788412058c24","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0-next.20260413070921.44b4f92.tgz","fileCount":3051,"integrity":"sha512-HWcmyRbrREnwLo991of5xqb+8FPnWnhrJqNKVrxEQFH+gFzqXxSAVZTtbht04oDS/+8qN2VxwKHOM9dyabe0kw==","signatures":[{"sig":"MEUCIFkbxf0DMYC0nFlNC3R6axIK8EvyRDKUFhMA3VlyGDDGAiEAv6s56KW/QTjunhtEgPDQwgqAIVzNz4IOgr9361FGc4E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0-next.20260413070921.44b4f92","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":54111189},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"44b4f92b123317b098d16f4fcd09a90f45e18c4e","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-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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.4.624","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","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.41","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.15.0","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.7","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0-next.20260413070921.44b4f92_1776064201916_0.008085197698374014","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"remoteclaw","version":"0.5.0","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.5.0","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"6081edf7b3b1ef7b38ad758c587eda34920de465","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.5.0.tgz","fileCount":3105,"integrity":"sha512-h1qRHt2EHYFwiCmhqBaFw7ID1EBAZUW1XvA9MQ2w5T8ZSsogYApvnAlcwyEieWTN2N9/hyYulLE/a0rHNbNl4g==","signatures":[{"sig":"MEUCIQDGvG1flxLyJAWcdly2RfDMXwGjEeQYeDNiL/mXg7424QIgAcdqKpYB8t0RHB+Wg/MUscFbKVmBwgdQWcWlzrd6bM4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":57748929},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"44b4f92b123317b098d16f4fcd09a90f45e18c4e","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-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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.4.624","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","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.41","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.15.0","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.7","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.5.0_1776074846620_0.4215994349600569","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260413101716.4d63b18":{"name":"remoteclaw","version":"0.6.0-next.20260413101716.4d63b18","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260413101716.4d63b18","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"ddf2778f7a500348efc165faf48cdce9f612be6f","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260413101716.4d63b18.tgz","fileCount":3051,"integrity":"sha512-C3g/y9H/QBSIUcxmI0LxVNbL7uO8VHZFKb1iUKx+T7QNyq+WEsZzcNMq0I04jxitsacVpLNpVZHh6pyNTCLffQ==","signatures":[{"sig":"MEYCIQDe0vscBLqImuLMC8vH/GAv97+rWRFNunZLLlhRJHCLagIhAKBH0AYePyfILqDP53NXb02EiVHTpfQZesvyJm4ppEYY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260413101716.4d63b18","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":54110547},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"4d63b1812bf6689df43237db69866f7e75f80606","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-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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.4.624","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","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.41","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.15.0","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.7","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260413101716.4d63b18_1776075477821_0.6788616550632502","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260413122412.bd16095":{"name":"remoteclaw","version":"0.6.0-next.20260413122412.bd16095","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260413122412.bd16095","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"0a4b20a7446be4d87ff906d5589207ade8f6b52b","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260413122412.bd16095.tgz","fileCount":3051,"integrity":"sha512-HOEC/ApK6ieXsH26rPChHPUyFEwtAlkWNblMNoT7vIe9Z2evGgtm9v+mBY5H1f2hERhof3aS33HcSAGe67No4A==","signatures":[{"sig":"MEQCIEjaDj5p1z3lLLOpAvFoa9njxvVkG0qE7/8pgl8r/qBeAiBC1JYclTRCgywFtbNA8/yz6+g3bK7JgWha4nxrkzJzFg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260413122412.bd16095","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":54111193},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"bd160955db1464121112a87bdc15d28bd85cb0ce","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-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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.4.624","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","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.41","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.15.0","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.7","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260413122412.bd16095_1776083096657_0.9233018610531285","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260413123204.0aa6d97":{"name":"remoteclaw","version":"0.6.0-next.20260413123204.0aa6d97","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260413123204.0aa6d97","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"19c518296fd83cce75cebaab9085ef5cebe83140","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260413123204.0aa6d97.tgz","fileCount":3046,"integrity":"sha512-FIys6nGSvwImzkLgg+QPWL/U7yKSrm3gn5t6maRmvXHUSAA5e8hxWEH4/5HQiTWEWZzG5aAwyiqtTxT8Yz31cg==","signatures":[{"sig":"MEUCIQDfi+GG5+f3D2uw7RAEtuI5ggm0OCaOlUDtM7eUd/Tn/AIgU8svqbf8iaj7zcPzw91aW9yHHVNiYdgpEiElvEPk2HM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260413123204.0aa6d97","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":53922102},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"0aa6d9779a4e23914374cfcca22d8808daa0f179","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-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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.4.624","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","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.41","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.15.0","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.7","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260413123204.0aa6d97_1776083563554_0.9226004898233542","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260413130639.4e924b8":{"name":"remoteclaw","version":"0.6.0-next.20260413130639.4e924b8","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260413130639.4e924b8","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"3e74c9d3963dd0553714a44321aba7106d0b156e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260413130639.4e924b8.tgz","fileCount":3096,"integrity":"sha512-lDXKXOhuO9urUNvJ/puqsN7w4i5bnl8fihrSk73dnKkz9KTzITPU6SIqwfAlSPLZuFz5G4hArfMs3tG/Y9dwQQ==","signatures":[{"sig":"MEUCIQDqO8hWu8E4LL6XDZs/LRO4RfZy5/WkLU1lGbcSj03aSAIgG4iZsvftk2O76yVonjtvZH9rJQzMev2DF1OlvssL+Xw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260413130639.4e924b8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":57492258},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"4e924b8d3952cdcf42cf80956bceb46839aef369","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-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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.4.624","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","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.41","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.15.0","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.7","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260413130639.4e924b8_1776085639772_0.7427524594588357","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260414151023.2f1aec4":{"name":"remoteclaw","version":"0.6.0-next.20260414151023.2f1aec4","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260414151023.2f1aec4","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"c9a07446f34d85a81b6c121e408b8a046b723cc4","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260414151023.2f1aec4.tgz","fileCount":3096,"integrity":"sha512-TheA8AWLqYThwoY9LlAwadlPMr//TzeTSwJBadP3JM928MnNVJdUHM2o0mNBE/5KSBoRoXywRvo1XkU/S30L+A==","signatures":[{"sig":"MEUCIQDoxb8pDV7aIMXqPtzisOFBITbFmgmgOOmc/kCtAzqccwIgJN8cCOndcoR9bMhh6V4c/CH6Kx8o3+f/Kr5LfB6ihAg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260414151023.2f1aec4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":57495100},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"2f1aec4b3fcbee1c36a164f3e1ae4a078050efe8","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-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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.4.624","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","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.41","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.15.0","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.7","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260414151023.2f1aec4_1776179462946_0.1550632525835849","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260414153845.af4169b":{"name":"remoteclaw","version":"0.6.0-next.20260414153845.af4169b","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260414153845.af4169b","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"73e66913c5c9f2879fad92d1273f7a67e11df384","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260414153845.af4169b.tgz","fileCount":3042,"integrity":"sha512-SRWGDhgBae6d+t/Jx5KhJrymIBrZ1iAJrv5ZGj4aiBcI3jhKrVvfMKS9ELQPdaykKK4LEW7ErHr80bzC/gUC6Q==","signatures":[{"sig":"MEQCIFANoilD5vAXLlrjiGAbAcsej6WaeTwwp/0H/tFDvEKfAiA5VkgWGNuM/HnHXUGQe8PxYLGJMNxj1iDC4XlRdte2ew==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260414153845.af4169b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":53874317},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"af4169bf9a562c51ce58996673b1ac4f28ae47a7","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-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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.4.624","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","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.41","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.15.0","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.7","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260414153845.af4169b_1776181166181_0.3357175468574036","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260414160413.4c1fbea":{"name":"remoteclaw","version":"0.6.0-next.20260414160413.4c1fbea","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260414160413.4c1fbea","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d66ecdf15012996b5a50083ab6c507e0c8fc4554","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260414160413.4c1fbea.tgz","fileCount":3042,"integrity":"sha512-g+65ewXXkKWUwy5ePLMoPGRiAIetiyRRh3tb3uXQOP/1+9TzFJaLY+xy1nHUEJ6PbzdhTSJgHeh8u5r2Ujtatg==","signatures":[{"sig":"MEYCIQDOE2AWu3EHhmBYGwi8ugI0wSLPgulIjBv4Soi+J8fPxAIhANQfAwJlnezP8HMcG57m9n4ER7HRrXHhLdhYBKqvUzL+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260414160413.4c1fbea","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":53874317},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"4c1fbea63ce56f9b216a315f83b058f33c346f24","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-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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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.4.624","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","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.41","https-proxy-agent":"^7.0.6","@mariozechner/pi-tui":"0.55.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.15.0","@modelcontextprotocol/sdk":"^1.27.1","@grammyjs/transformer-throttler":"^1.2.1"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.7","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260414160413.4c1fbea_1776182694179_0.5495734537041665","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260415133439.3a84842":{"name":"remoteclaw","version":"0.6.0-next.20260415133439.3a84842","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260415133439.3a84842","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"603568fa96fd6b317458de690ec967542672f4ae","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260415133439.3a84842.tgz","fileCount":2666,"integrity":"sha512-qCQlAQ8G3N1gTggSoOxKYTf+B0dlbRK8XbrdzssrrsZf1+olfN5Yy165V+x8KUXgrGm+iwpjR3zr8JYWp7zBdQ==","signatures":[{"sig":"MEUCIHVOYPrQ1AUaFd85pKR3vZyK7Pd2k/A2bVfz5ks6LmlQAiEA8RaL3ItRRm6BUPNnP3Ghc3c+3glzKyQhIOQYpHcONck=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260415133439.3a84842","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":45627814},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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":"3a84842944c34d51b2eb025dbbab8188a6b59c9d","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-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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","osc-progress":"^0.3.0","@buape/carbon":"0.0.0-beta-20260216184201","@line/bot-sdk":"^10.6.0","@tloncorp/api":"github:tloncorp/api-beta#7eede1c1a756977b09f96aa14a92e2b06318ae87","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.1.0","@slack/web-api":"^7.14.1","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.41","https-proxy-agent":"^7.0.6","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.15.0","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.7","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260415133439.3a84842_1776260120278_0.2584632007482124","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260415200144.3b48061":{"name":"remoteclaw","version":"0.6.0-next.20260415200144.3b48061","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260415200144.3b48061","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"3cdfc725dc01615895a5ba19c13c6de76125bd44","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260415200144.3b48061.tgz","fileCount":2647,"integrity":"sha512-Lh/M1F2aXnccusQzf+UQfk2UjJNYq5pP6jWwfAgLdRvpA+AomLYEqm77P5rnygeRq/OWa0JONGcYr758YMyvKA==","signatures":[{"sig":"MEYCIQCD7mVbLGMcJ2Hb9y1YIyMmnZiPm1iqpxuP1n1qVYAEpAIhAMcaKSbfPC3yRwIM9KVmynrMtJhuy39ciO98Za7/TEDd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260415200144.3b48061","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":45556263},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/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"}},"gitHead":"3b48061497c19c7d47098ab28c39fd83409f51dd","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-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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","osc-progress":"^0.3.0","@buape/carbon":"0.0.0-beta-20260216184201","@line/bot-sdk":"^10.6.0","@tloncorp/api":"github:tloncorp/api-beta#7eede1c1a756977b09f96aa14a92e2b06318ae87","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.1.0","@slack/web-api":"^7.14.1","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.41","https-proxy-agent":"^7.0.6","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.15.0","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.7","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260415200144.3b48061_1776283345893_0.09370275356751212","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260416121314.5d5658a":{"name":"remoteclaw","version":"0.6.0-next.20260416121314.5d5658a","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260416121314.5d5658a","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d8bcd7070b4b0b57c086b87dd5a3254b4c831a44","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260416121314.5d5658a.tgz","fileCount":2639,"integrity":"sha512-00Ge6s4mlopQVpeX70jsT78ZQ/CsOD1lFUnC0ZM0E1C3R7B35xfR1EPea5zq8k4URMZoT3hwqLMi5w6BVt9/JQ==","signatures":[{"sig":"MEQCIAocFU3HTW56Rt9g9XLUYC9JoZSSQiO2A/TcVmS5bZy1AiApZVXOxpB/zwjIH9NDwehGJof9DXlU3KTKL+jbLAKI1w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260416121314.5d5658a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":45555181},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/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"}},"gitHead":"5d5658a874b79a5c9bcf6736482532bc2bcf292e","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-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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","osc-progress":"^0.3.0","@buape/carbon":"0.0.0-beta-20260216184201","@line/bot-sdk":"^10.6.0","@tloncorp/api":"github:tloncorp/api-beta#7eede1c1a756977b09f96aa14a92e2b06318ae87","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.1.0","@slack/web-api":"^7.14.1","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.41","https-proxy-agent":"^7.0.6","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.15.0","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.7","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260416121314.5d5658a_1776341634301_0.2666401180592932","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260416130102.c61609d":{"name":"remoteclaw","version":"0.6.0-next.20260416130102.c61609d","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260416130102.c61609d","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"39742a3753da0e6c8fc5cce2a491dcdf0832314c","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260416130102.c61609d.tgz","fileCount":2625,"integrity":"sha512-9p20PAARKCh55aIHvkcHwn1Uf3wXUX1es8qGrL3dZnOz/i37mu93E55cVnn9XUtw+IpKkg18OBlVTkthuXZ5oQ==","signatures":[{"sig":"MEUCIQCrurcxvV5bvZW4nsykytSaDnLmz5mGrRYoSw3gdy7E8wIgV/IM3qdFIieo3O7tGUMnAA4wfWKuKXLdmHAAbeWOiP0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260416130102.c61609d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":45416723},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/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"}},"gitHead":"c61609dc26c59be905b3ddf15097eadef4d1e079","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-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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","osc-progress":"^0.3.0","@buape/carbon":"0.0.0-beta-20260216184201","@line/bot-sdk":"^10.6.0","@tloncorp/api":"github:tloncorp/api-beta#7eede1c1a756977b09f96aa14a92e2b06318ae87","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.1.0","@slack/web-api":"^7.14.1","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.41","https-proxy-agent":"^7.0.6","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.15.0","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.7","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260416130102.c61609d_1776344501692_0.4973566616970666","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260416131809.4e84640":{"name":"remoteclaw","version":"0.6.0-next.20260416131809.4e84640","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260416131809.4e84640","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"555145f3e4e31c3f2cbff4979ce9407eeb56f0ea","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260416131809.4e84640.tgz","fileCount":2613,"integrity":"sha512-C5/O4Cu/rfFui1cAr8SqcN69DgjcxWRN08+iHoUIFL+4DwmxexH4RfL9nsn9xMwL2R+M752cQEO6QkzKEhRBTQ==","signatures":[{"sig":"MEQCIDvDLd53K5x3Ex1PqXOdCQbqX78jEf5CcnUrrO5r5puRAiBKVFROhhIZgqHuXDAbJz8SHDaKDNT0+96Ih4h/PO+vuw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260416131809.4e84640","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":43421523},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/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"}},"gitHead":"4e846400b0e641b17185ccd30f77f9041241f5e4","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-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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","osc-progress":"^0.3.0","@buape/carbon":"0.0.0-beta-20260216184201","@line/bot-sdk":"^10.6.0","@tloncorp/api":"github:tloncorp/api-beta#7eede1c1a756977b09f96aa14a92e2b06318ae87","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.1.0","@slack/web-api":"^7.14.1","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.41","https-proxy-agent":"^7.0.6","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.15.0","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.7","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260416131809.4e84640_1776345528275_0.21293392590892735","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260416151738.3692344":{"name":"remoteclaw","version":"0.6.0-next.20260416151738.3692344","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260416151738.3692344","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"0f8458f05770996b8ef22fc6d7d5e4d3beaf97ea","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260416151738.3692344.tgz","fileCount":2618,"integrity":"sha512-z4SYHg/s2oja3aomztZB4zX2FfIUE+5vpi85KNdrebnE2Ndjc9mau9alLS/q3T/+gb5NVdXahBqYr4o1w+PpAQ==","signatures":[{"sig":"MEYCIQCdnUSceNobIO6jcl9CwyHNDGXQcXOyy+03ptxK7/u6TQIhAKnORlVk27wkawbrd7BG2S0Wn9cECDbvOpNlIyCL+9GQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260416151738.3692344","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":45400546},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/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"}},"gitHead":"36923449126eca862d048009acf55fe68dd44fe4","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-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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","osc-progress":"^0.3.0","@buape/carbon":"0.0.0-beta-20260216184201","@line/bot-sdk":"^10.6.0","@tloncorp/api":"github:tloncorp/api-beta#7eede1c1a756977b09f96aa14a92e2b06318ae87","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.1.0","@slack/web-api":"^7.14.1","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.41","https-proxy-agent":"^7.0.6","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.15.0","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.7","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260416151738.3692344_1776352697147_0.5568642086216227","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260416175821.84e53de":{"name":"remoteclaw","version":"0.6.0-next.20260416175821.84e53de","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260416175821.84e53de","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"afc8cb1bf1811a53132475b1f26fbca8039686eb","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260416175821.84e53de.tgz","fileCount":2597,"integrity":"sha512-iBKDTewlTmIFMb60p65kxTlgDnwq1RNww9o1lcOwbtcy5YPiXEH1WywU6HWhPbtoxncv9enBb82rqhkYXhfV9Q==","signatures":[{"sig":"MEYCIQCGeBjNghSIW2bjsm8Cc1tEikfB9LTcFdqYW0ev8Vlh7wIhAMp1lvN3DGVQQoQRvAAn6E0JXkSA0cFp76qRCr0CuhjU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260416175821.84e53de","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":43252587},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/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"}},"gitHead":"84e53def37129fae30220ad490cf8288133c3be9","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-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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","osc-progress":"^0.3.0","@buape/carbon":"0.0.0-beta-20260216184201","@line/bot-sdk":"^10.6.0","@tloncorp/api":"github:tloncorp/api-beta#7eede1c1a756977b09f96aa14a92e2b06318ae87","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.1.0","@slack/web-api":"^7.14.1","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.41","https-proxy-agent":"^7.0.6","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.15.0","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.7","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260416175821.84e53de_1776362339833_0.5288762236998323","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260416191046.a8374ec":{"name":"remoteclaw","version":"0.6.0-next.20260416191046.a8374ec","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260416191046.a8374ec","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"4b4a3ee7db316cbd9fc4a044e846964101dd1f58","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260416191046.a8374ec.tgz","fileCount":2590,"integrity":"sha512-EmPLJQtLwSXeI8bUkFsvc/+rHrJ9+UeM9lgV4DhLtGaOE7mZTViSeaI77trmZC5/ReKQifQMM5DfycLWvHKURw==","signatures":[{"sig":"MEUCIQCcAZJZlUN6rUX2ufdFuMM4B4Yqur3PmDOmd6vQsf1UzAIgL+R6NG+8DFs4RBi03uq4M58QpKzPzjCasp9OE51S1oM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260416191046.a8374ec","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":45080224},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/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"}},"gitHead":"a8374ec5cae40b5e7eca8590de818a1775a97803","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-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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","osc-progress":"^0.3.0","@buape/carbon":"0.0.0-beta-20260216184201","@line/bot-sdk":"^10.6.0","@tloncorp/api":"github:tloncorp/api-beta#7eede1c1a756977b09f96aa14a92e2b06318ae87","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.1.0","@slack/web-api":"^7.14.1","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.41","https-proxy-agent":"^7.0.6","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.15.0","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.7","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260416191046.a8374ec_1776366685832_0.2689070431802729","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260417055155.bda526d":{"name":"remoteclaw","version":"0.6.0-next.20260417055155.bda526d","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260417055155.bda526d","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"94caf228584381d6def5f7478b900e193ba0b2a1","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260417055155.bda526d.tgz","fileCount":2581,"integrity":"sha512-wwHjn5PTwQNOjXdeTOOviVjWRMej0LrGVDjbSvbYXliiKErgDtcITZzlCGQChN2TCQSiM7LGrBuxuWl8DFPWDg==","signatures":[{"sig":"MEQCIAU699tWwk7VkW+Z/aTUiyJFcZ4W8dbaECUWdR/4CLO3AiAtdlaj0VCr3bgjKg9X7wY3omuYv0NlQx4/D0J7TZ8WUg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260417055155.bda526d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":43116105},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/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"}},"gitHead":"bda526d5998a011c7f9a5b00c26ba48a83f7781b","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-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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","osc-progress":"^0.3.0","@buape/carbon":"0.0.0-beta-20260216184201","@line/bot-sdk":"^10.6.0","@tloncorp/api":"github:tloncorp/api-beta#7eede1c1a756977b09f96aa14a92e2b06318ae87","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.1.0","@slack/web-api":"^7.14.1","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.41","https-proxy-agent":"^7.0.6","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.15.0","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.7","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260417055155.bda526d_1776405154670_0.3731393452783598","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260417140936.15b3db4":{"name":"remoteclaw","version":"0.6.0-next.20260417140936.15b3db4","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260417140936.15b3db4","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"2f173851fbaf0913c2a596ca12c250f751cf0f42","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260417140936.15b3db4.tgz","fileCount":2607,"integrity":"sha512-ovo37XGAejD29MlD/LiYy42Cnlege9EZMWE0H30xhsOC6ObwjVRps/E2w1bYt3QrswtZIAN0BgJ0psVKbmMiIg==","signatures":[{"sig":"MEUCIQC+nKoxryXhdAEL1ysoT1FdiqVd2Srij5wr+GqOTV7sFwIgRzdj6XI1DQ7M2DPm2S5vz4MZ9qJqVuK+JOjUSzggPTI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260417140936.15b3db4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":43955970},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/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"}},"gitHead":"15b3db49e7553506e966a01ca1502c56a90e44be","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-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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","osc-progress":"^0.3.0","@buape/carbon":"0.0.0-beta-20260216184201","@line/bot-sdk":"^10.6.0","@tloncorp/api":"github:tloncorp/api-beta#7eede1c1a756977b09f96aa14a92e2b06318ae87","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.1.0","@slack/web-api":"^7.14.1","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.11","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260417140936.15b3db4_1776435016744_0.16982109324813255","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260417144510.8d35ea6":{"name":"remoteclaw","version":"0.6.0-next.20260417144510.8d35ea6","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260417144510.8d35ea6","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"5d75919e3e0a1c5e4d006b5302d493ab992629e0","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260417144510.8d35ea6.tgz","fileCount":2616,"integrity":"sha512-B5lbRm9TBosr0H9I0GVUOSB7PZYJFzgW2PHp/L4blS3U3myc0HeNengtBrbCAUgxlYxrEdsH5qJGDxGO1pbDIg==","signatures":[{"sig":"MEYCIQDCtt/F+wMr3+DmPGQy33saPXWUh1rfad09qTB47YNAHQIhAJP6/QIF70PD63QV366raTEtmF5YCZG4yaqoqOCeAHfY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260417144510.8d35ea6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":45954614},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/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"}},"gitHead":"8d35ea60ff664b8d3d073ed427d8daf670626a0c","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-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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","osc-progress":"^0.3.0","@buape/carbon":"0.0.0-beta-20260216184201","@line/bot-sdk":"^10.6.0","@tloncorp/api":"github:tloncorp/api-beta#7eede1c1a756977b09f96aa14a92e2b06318ae87","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.1.0","@slack/web-api":"^7.14.1","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.11","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260417144510.8d35ea6_1776437150968_0.03653074530357969","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260417152737.12145fc":{"name":"remoteclaw","version":"0.6.0-next.20260417152737.12145fc","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260417152737.12145fc","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d1bc0e304e4d1a60724d99a3be29b555289b5c25","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260417152737.12145fc.tgz","fileCount":2616,"integrity":"sha512-T7GxjKXsEFmPvlCk3kF+A43y2N+RsKrr6KPWycgf4a3Ewan7Td1MNBP9f2F+noLoYSpJe74f2nthZvj5bsj/tw==","signatures":[{"sig":"MEUCIQDf8p/07Gu7nURIRtFiAEFtfpON+I4iFOUMo5DgLjCy4QIgfOICHUdCoXZujxlNSdA5H60UnIKlonjwrNwYrBE3Bnk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260417152737.12145fc","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":45954720},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/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"}},"gitHead":"12145fc441228f2815ac80568c8cc1773b0fe713","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","osc-progress":"^0.3.0","@buape/carbon":"0.0.0-beta-20260216184201","@line/bot-sdk":"^10.6.0","@tloncorp/api":"github:tloncorp/api-beta#7eede1c1a756977b09f96aa14a92e2b06318ae87","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.1.0","@slack/web-api":"^7.14.1","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.11","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260417152737.12145fc_1776439696646_0.6009716350676044","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260417162423.b805e14":{"name":"remoteclaw","version":"0.6.0-next.20260417162423.b805e14","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260417162423.b805e14","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"bf68d5c477c19ea8eadfe8a521532baddcbd6368","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260417162423.b805e14.tgz","fileCount":2607,"integrity":"sha512-rXZJRfn6eCRcXSkbMXczxz8/rBpDxtz1HQca01yde1GH7/sQaxud2ctNympTHkuf0MVVHqTJBqtZ9sGnfBRVSA==","signatures":[{"sig":"MEUCIBfTzSgPGshNvSLGU0ePpqaZtDtjrSQIfp6lMyOIt2pFAiEAi+cJbpkI0M8dz1QaxipCjRof+QheHjdrV9Zh0nRQWpA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260417162423.b805e14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":43956183},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/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"}},"gitHead":"b805e143072a9650d5fcdc3adb1b417e3865dd99","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","osc-progress":"^0.3.0","@buape/carbon":"0.0.0-beta-20260216184201","@line/bot-sdk":"^10.6.0","@tloncorp/api":"github:tloncorp/api-beta#7eede1c1a756977b09f96aa14a92e2b06318ae87","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.1.0","@slack/web-api":"^7.14.1","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.11","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260417162423.b805e14_1776443103039_0.3735145001554645","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260417195346.a0ec36f":{"name":"remoteclaw","version":"0.6.0-next.20260417195346.a0ec36f","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260417195346.a0ec36f","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"7ed113903429bdabd04614df87bdee90ee3f5722","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260417195346.a0ec36f.tgz","fileCount":2607,"integrity":"sha512-FvCAbDnxABxzXKdr/yYLOSMI4aHoZdgODcYLlYKnTk0LKTJUc+ujXxiJXKYq4tcjGikLN5Z2yog1E6UChtlfTw==","signatures":[{"sig":"MEUCIB9WsgtCBXO0yVceiPlm2fmkqmvtUxMQxLjKkqcf5nFSAiEAs3di2ZHHYVpFte1z7L8fabAYOw/t7jTOG25ot5jABO0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260417195346.a0ec36f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":43956179},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/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"}},"gitHead":"a0ec36fb4ce569eaae72800f2b63301c1597a16a","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","osc-progress":"^0.3.0","@buape/carbon":"0.0.0-beta-20260216184201","@line/bot-sdk":"^10.6.0","@tloncorp/api":"github:tloncorp/api-beta#7eede1c1a756977b09f96aa14a92e2b06318ae87","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.1.0","@slack/web-api":"^7.14.1","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.11","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260417195346.a0ec36f_1776455665124_0.9440241590654217","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260417211316.85a7249":{"name":"remoteclaw","version":"0.6.0-next.20260417211316.85a7249","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260417211316.85a7249","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"797963868bdac2682661efff1cceb711d7ef911b","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260417211316.85a7249.tgz","fileCount":2616,"integrity":"sha512-aLPZyjplSoiGBkiM7ZF8CduZilvAGxiaqLr0U8xlJvKUuazTWOyx7g+8rlCyJ3GrResEzcy6+rAveVQgpveLlg==","signatures":[{"sig":"MEUCIQD0cLOCUGNQj5462oCUQCZMdGf9p9l6G27EF/N6skwfegIgY9wtT49Udd2F1XgThEKeMVeN2tPWJhaj1r9ADzZtsmo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260417211316.85a7249","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":45954442},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/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"}},"gitHead":"85a724951ab39262b70815bb53f7de2dbb7ce27f","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","osc-progress":"^0.3.0","@buape/carbon":"0.0.0-beta-20260216184201","@line/bot-sdk":"^10.6.0","@tloncorp/api":"github:tloncorp/api-beta#7eede1c1a756977b09f96aa14a92e2b06318ae87","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.1.0","@slack/web-api":"^7.14.1","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.11","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260417211316.85a7249_1776460435202_0.05170751160911857","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260417212237.b01b419":{"name":"remoteclaw","version":"0.6.0-next.20260417212237.b01b419","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260417212237.b01b419","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"654cc223fc183e0f97ead2d3ff23286ab0ec01c8","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260417212237.b01b419.tgz","fileCount":2616,"integrity":"sha512-Pe3wwp/m8VDH3jNUO0H1isu1rkxOx2eZoCO07O20kmSwRsDRmXBbSprtPaGGzr+nExlwBKUbV33Wjd4eUNOzyw==","signatures":[{"sig":"MEUCIH/+3IJLkJGtYxlVbyavfMWPN++DROJsPTEibs1VGpI3AiEA6U3MNp1F7EenaytnimGa5S1irPOUqX4AHSxShDoJnu0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260417212237.b01b419","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":45926835},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/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"}},"gitHead":"b01b419e10200d19c030d8dd29c4019dd05bb12a","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","osc-progress":"^0.3.0","@buape/carbon":"0.0.0-beta-20260216184201","@line/bot-sdk":"^10.6.0","@tloncorp/api":"github:tloncorp/api-beta#7eede1c1a756977b09f96aa14a92e2b06318ae87","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.1.0","@slack/web-api":"^7.14.1","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.11","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260417212237.b01b419_1776460989032_0.3930851231103749","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260418074547.3884c89":{"name":"remoteclaw","version":"0.6.0-next.20260418074547.3884c89","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260418074547.3884c89","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"1eabad5f78f1eb621ea15b6ff0b2d29032fdc89b","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260418074547.3884c89.tgz","fileCount":2619,"integrity":"sha512-j4rWaJU1DJY5Q9XV1K/DMGNPE3GwIKC1YcOmpz+u8ktEjDHa8slTd19ZuNEGEGmU+7p3bm5cS1oP+XRRi00eNw==","signatures":[{"sig":"MEYCIQCU4ovBeSlxasfFwulaSsD2oi7HqScfyDkr7TCT0CbcFwIhAIpxxWwp9bZ03tQRWYjTtQbensWmUkgoBGPBhSU1x15h","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260418074547.3884c89","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":46026974},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/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"}},"gitHead":"3884c89b23b5a2b3adb3e384b87755e4efb82e50","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","osc-progress":"^0.3.0","@buape/carbon":"0.0.0-beta-20260216184201","@line/bot-sdk":"^10.6.0","@tloncorp/api":"github:tloncorp/api-beta#7eede1c1a756977b09f96aa14a92e2b06318ae87","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.1.0","@slack/web-api":"^7.14.1","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.12","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260418074547.3884c89_1776498387219_0.5630955765136358","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260418135615.5df49fc":{"name":"remoteclaw","version":"0.6.0-next.20260418135615.5df49fc","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260418135615.5df49fc","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"1149fe2fced70e784a3d3da000d8a301ff1c6c1b","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260418135615.5df49fc.tgz","fileCount":2628,"integrity":"sha512-lK4zQyhpHFHl+/N/8AkU93OAKXOSV9EyF7vxeIdIP74odC1znjKRLB+INIQY//xGZ0JZWtnfBfLmIPBh17uL+Q==","signatures":[{"sig":"MEYCIQCT6LL/5Pbg6KCG+L6BnxSTauV2sYfArmr19UgehQM2LgIhALyC9SXXkbdxU9gdgtotyOAXq8txpJNJ9eQ6twKoHoar","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260418135615.5df49fc","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":44359267},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/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/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/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"}},"gitHead":"5df49fca3dcb5591f0f934be101aae8eedb146b2","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","osc-progress":"^0.3.0","@buape/carbon":"0.0.0-beta-20260216184201","@line/bot-sdk":"^10.6.0","@tloncorp/api":"github:tloncorp/api-beta#7eede1c1a756977b09f96aa14a92e2b06318ae87","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.1.0","@slack/web-api":"^7.14.1","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.12","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260418135615.5df49fc_1776520606380_0.6257982256501797","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260418205300.2e51f00":{"name":"remoteclaw","version":"0.6.0-next.20260418205300.2e51f00","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260418205300.2e51f00","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"0272a6c2d7603a400dcfc2d4a1e8f2fa27749599","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260418205300.2e51f00.tgz","fileCount":2683,"integrity":"sha512-pIBpKjrCY4moEHOoVsIOlKzdQJ2auki/NXs6Og0SkQCcSzLPCZGMfJFtTf3/eMKfILPwNKaevum6Tu+ILOJOGg==","signatures":[{"sig":"MEUCICJZsEsoRu2spTEeLUTpu2nlh9qEk1vWIrt7e3SB0BFlAiEAu1rzk4kwB5QFUp3hKaGW20G8qklFTMxm8eNDXPHRnEI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260418205300.2e51f00","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42155698},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"2e51f001dd8e77137ba65c34e64c36eea1efe19d","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","osc-progress":"^0.3.0","@buape/carbon":"0.0.0-beta-20260216184201","@line/bot-sdk":"^10.6.0","@tloncorp/api":"github:tloncorp/api-beta#7eede1c1a756977b09f96aa14a92e2b06318ae87","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.1.0","@slack/web-api":"^7.14.1","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260418205300.2e51f00_1776545617692_0.49363559707463267","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260419062830.53a5547":{"name":"remoteclaw","version":"0.6.0-next.20260419062830.53a5547","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260419062830.53a5547","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"3f608cc3f4090db3a444d4ca5825f682e1dcec3c","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260419062830.53a5547.tgz","fileCount":2678,"integrity":"sha512-8mCQxW3mjWX+I5mcJM2gbscO3dTilKJr25kpquzKcEheiNa+zShbmtcdUYJDQ82767Zy57Mej4QxFkWQyVenTQ==","signatures":[{"sig":"MEQCIH/wzDRoo+idIpTSwKNNCjw7KPprlpnusxwNY8kljsycAiAkESUBMU9EQmrlQEZt6gByF09IWHCAMMNr9VlvLQl42g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260419062830.53a5547","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41026669},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"53a55478851861d387435ec88819e13dffdaaf7b","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260419062830.53a5547_1776580147775_0.9503155306439097","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260419065021.0507e9d":{"name":"remoteclaw","version":"0.6.0-next.20260419065021.0507e9d","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260419065021.0507e9d","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"af197c4117472631b195628c51a0ddf9c72da1be","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260419065021.0507e9d.tgz","fileCount":2684,"integrity":"sha512-TCMflcZoeraqFEKZaiUuZKBwL5yEdd56BMsWBZo4VUYJYIOnZjbaKXaph+ndr2AGURdeAr69H5Ulj+XakzsZYQ==","signatures":[{"sig":"MEUCIBQi2wjn45F6NCEK+6s4dTbULUnQZ/BFEl5t4m0EcOn3AiEAvIFAXe9eLaEWG/CJob2GqH4POsg7MClO00IUDWoxnZY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260419065021.0507e9d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42164186},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"0507e9db5ec3c2581594b170e2bf6e86aa8062b2","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260419065021.0507e9d_1776581458199_0.10908527555663294","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260419080508.d4a01b9":{"name":"remoteclaw","version":"0.6.0-next.20260419080508.d4a01b9","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260419080508.d4a01b9","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"6882555b6f2c93c61ca3ca5fd2060c1c9eb9b844","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260419080508.d4a01b9.tgz","fileCount":2678,"integrity":"sha512-vlmq61S7sDkm7v4gzJLOO90RQCmYoiK6CZ1f2Se+TzqLMObaxwwdXK8TEUgzeWoU2n2Z/iKtajaJAqgRsXaF+w==","signatures":[{"sig":"MEUCIFhUmgRrUer2kBGk++cdt5xFRatWwpO+Ic6zqaP94ozZAiEA7Y6zYz5BnEVTndrZjRnnMd1CxLc1N3gldwpoaMRcHW8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260419080508.d4a01b9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41029401},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"d4a01b91908fdd6559fcf64ac2b80ae69475b07e","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260419080508.d4a01b9_1776585947102_0.9424986393831152","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260419082717.2b6d0ba":{"name":"remoteclaw","version":"0.6.0-next.20260419082717.2b6d0ba","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260419082717.2b6d0ba","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f1a8935039aef92b9e4dbbae8fb8526075c24e6f","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260419082717.2b6d0ba.tgz","fileCount":2678,"integrity":"sha512-5twAP9yYN40IgCQajii3EukMwoH9tHIuZVI9swXeBya/mYkxlB5hw19dZdYKmhw1XTL0WMA1Se+yWJgJe7vTNg==","signatures":[{"sig":"MEQCIFgGUfg3Nm8/D5bbNEJDk+pHCcGJ8+n0nosq/BM/ShdMAiAaCk1g1AkrVOQvGOF1gTmbX2bm1GUcyEPqICADsjluNQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260419082717.2b6d0ba","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41029401},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"2b6d0ba32991709c3aa39b251b77cad34aa999b0","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260419082717.2b6d0ba_1776587276473_0.8352960204013606","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260419083450.c803e6e":{"name":"remoteclaw","version":"0.6.0-next.20260419083450.c803e6e","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260419083450.c803e6e","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"ca0c343d00828965751264579291f2c91a287ce0","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260419083450.c803e6e.tgz","fileCount":2678,"integrity":"sha512-eo4ASND4pFmezDZsJJjAABh0xEJhTgAv/edYdcLXZpjPIayIrsDzV8vuBPohBPLXnX3jFzdK8WhLqxxkmLRKlQ==","signatures":[{"sig":"MEUCIC0E54YUr2xS7dJl1egwYHY1kwSmu/fquRCIxCyeZRX5AiEAsi7jCWcTy6WVr2iyGjQjY9Se1N32XoRIwjGz2LcNjH0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260419083450.c803e6e","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41029409},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"c803e6e1adb83a935e47a01429ab1d9423dfbba4","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260419083450.c803e6e_1776587729506_0.9314309701777743","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260420062753.028566c":{"name":"remoteclaw","version":"0.6.0-next.20260420062753.028566c","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260420062753.028566c","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"fc320f6e999cd7c01065aec4112a82cecd3597fc","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260420062753.028566c.tgz","fileCount":2682,"integrity":"sha512-USPi3UOpSaomuSCxM57iGTMiOoSXm8gKziP5zpBou9t29cVMhq2eX3lV1tWt6sjXasc6hkL9hK18Q6J9nqsH8Q==","signatures":[{"sig":"MEQCIER5zm2mksWvs1uV7KlXLWF9RLVFGNx7OjDHn1DyHvzMAiBbHUdQfiAV5NXckvcbV0x0qIOCKJy3qPGzjfoEZG5oBg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260420062753.028566c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41072134},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"028566c42be28652d7ad047402f06019ef2e8e5d","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260420062753.028566c_1776666513785_0.9934409690849417","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260420101116.df56d02":{"name":"remoteclaw","version":"0.6.0-next.20260420101116.df56d02","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260420101116.df56d02","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"59eaab0eccea32299c1e6921d6b42f4f51aaa87c","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260420101116.df56d02.tgz","fileCount":2682,"integrity":"sha512-/l/yINYQ9MjEtjnCIfdK0+hvBfSSyGpwPYZs9iRHn5QZcTA84rIZ74i/I7+F5oi2/z6B2w+8uscRGmVmwWGvWQ==","signatures":[{"sig":"MEQCIDwhVYL943s1dM+SzydpwKmLWOuyFhoY4fyWLx+eDOBcAiAHmju8PYsyKlVkIhd5vGYo8KZvvptpbje8oJFa5StDqQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260420101116.df56d02","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41072266},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"df56d02753966bd96a5dd01a8fcc2b29205ebaf4","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260420101116.df56d02_1776679913991_0.036710368081017464","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260420111617.5922116":{"name":"remoteclaw","version":"0.6.0-next.20260420111617.5922116","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260420111617.5922116","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f313359e3c49806dd025d749564b27ac156ac3f1","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260420111617.5922116.tgz","fileCount":2682,"integrity":"sha512-fBCIkyaPpmpPXE1sBNEeDCQG8vrxgSAD8HU+jA0P3mVa429QFQ/p+h1VZhsQkLqb0GI5uZ+7eJxC+mUfIHEAQg==","signatures":[{"sig":"MEUCIQDwv7LjtU2a68jiQickTKp5vTDDzpe8+F9gn95aDDNPzwIgfqbxITCxG3yDAVi8ogu6Fs6pHNqZWw56bR0oyb8feP4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260420111617.5922116","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41072254},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"5922116df0e2ee614e67306afa8528c41bad6f31","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260420111617.5922116_1776683816072_0.6189751920561246","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260420140118.448a36d":{"name":"remoteclaw","version":"0.6.0-next.20260420140118.448a36d","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260420140118.448a36d","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"aad0e59def4beec99964f8bef26aa519c15cc890","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260420140118.448a36d.tgz","fileCount":2682,"integrity":"sha512-bggaVdYrUrMzRriEemm4AYoG/6VUb8gLUovAqWWUMDTvNNyPBDDzVaT3a7wMh5IF/9S/OUMggUB12nTt9guyuQ==","signatures":[{"sig":"MEQCIDLF/qVEiK3idXAXw7PJKEDW3D3m+rxlrpdQI3T7OJ9PAiARApj+3q3okbwIT0y4BZTifN4OnRYSETOpXT0S+7UDVw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260420140118.448a36d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41072117},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"448a36daf81efecbaf08f6c489437fa3df30260a","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260420140118.448a36d_1776693720933_0.26589114368836686","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260421062714.511ae3a":{"name":"remoteclaw","version":"0.6.0-next.20260421062714.511ae3a","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260421062714.511ae3a","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d94f9afd1f7571959600b469315a308140013786","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260421062714.511ae3a.tgz","fileCount":2682,"integrity":"sha512-D2PjVX8QZToT5LrH5u/9M0/ulBiX9XHYq/H9bQeAIT0adDz1SWlnw2O2J7s4YrZJwD0Cn3k5gBsSXEMfGlM7ow==","signatures":[{"sig":"MEQCIHDB3CYg+ag2BLeZtXcqOyMk32wVdiPc8d+Gt/oYYJ3UAiAkqKc0ojlILnrNMyQ8p7ABRCJjlT1uvScsAmiNCXaNfw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260421062714.511ae3a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41101472},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"511ae3a5396a7d6635902eff63ce1f77c2d65e25","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260421062714.511ae3a_1776752873488_0.3120753984389033","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260421071307.9801df6":{"name":"remoteclaw","version":"0.6.0-next.20260421071307.9801df6","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260421071307.9801df6","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"280e340f64c4e5643570e5e978825b0288b8f783","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260421071307.9801df6.tgz","fileCount":2688,"integrity":"sha512-eA8CPE6HLvWaVe1CEemiB5x9asrR5T2KgUnvKB/GRHDOHBjYqFRjpd4qMl39czu3ltvPbFbC2UGLoq+EtdBp2A==","signatures":[{"sig":"MEUCIQDrBNPYZ/pwHpIetROFDqT77Cao9BtgIVzm3jeYa/yk+wIgEjPKeErAXFa3sl0D5WA95ysgExvfANTb6Iu8iifzPhk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260421071307.9801df6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42240478},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"9801df61aa1ae3f409f307d4674155d54eb8b28b","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260421071307.9801df6_1776755625815_0.18734719565777347","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260421082023.cd7900e":{"name":"remoteclaw","version":"0.6.0-next.20260421082023.cd7900e","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260421082023.cd7900e","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"eda34bec73655c1adf66059860c91930febba9c8","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260421082023.cd7900e.tgz","fileCount":2680,"integrity":"sha512-bKN8iY0g15EELgc9qQWMI1RwkB/jp5XwBrECyMlt6Ezyu1vVMMXfMS7sH44JwFHDfSjx1LINMOMQmH/cAU0bwA==","signatures":[{"sig":"MEUCID3Jb9vRZydqBbLv1awt/+gRLw2kndSiZFVXiqteG9ifAiEAwAiEX+P0/6ZCzN5sTslJdapqw8Q8xya8yoAuNcxUKEY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260421082023.cd7900e","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41094266},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"cd7900e8763abbff1643ecdfa8119d70581745d3","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260421082023.cd7900e_1776759662048_0.261695312672354","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260421100618.5286280":{"name":"remoteclaw","version":"0.6.0-next.20260421100618.5286280","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260421100618.5286280","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"c5223ef0fbc210d1e6a38373cf3ea51dfd677a86","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260421100618.5286280.tgz","fileCount":2678,"integrity":"sha512-IutO/J5eUGEYMutBcOZTESXZDlJSCwYcZEqOaB8BPyRQJHgB1ke1ungkLRoEyrJ7/wrowZskx6BV2+PFRHehjg==","signatures":[{"sig":"MEUCIQC3D80iTnUPnMUZB4GtHgDpN2GFACoZ7RSq/qmpL6841wIgfFgEQ+CimasO7HlUG5v6O8vo9ERRub2Vnw+Un24vwXU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260421100618.5286280","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41038359},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"528628094ed09de29742cecb93a03935b35f3156","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260421100618.5286280_1776766020907_0.05796613009921092","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260421124807.32fb155":{"name":"remoteclaw","version":"0.6.0-next.20260421124807.32fb155","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260421124807.32fb155","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"76ed8d4c7a0515b19f409e1cddae212a7491a13b","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260421124807.32fb155.tgz","fileCount":2677,"integrity":"sha512-Hy2qvXMoMsuaVrP8WfFfE3+f2g8s4Ns4jLB+Q/SnN7gQwXb55smAMilpXHMq0q3VOnsP4lXG5IaOLd/xFSm2oA==","signatures":[{"sig":"MEUCIBXpCFIyLxqkaz/o3+JrvUt7OC3cu53EsVZLY9Y3CNwtAiEAiHkxlXlN0Ps5a8c6CzXQaSRNzZdHNwNgUtCPNFs60s4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260421124807.32fb155","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41023551},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"32fb1559b0d7f377446b7e3c20ecef5be4cc7d88","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260421124807.32fb155_1776775727186_0.7470832233735525","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260421133219.c14b2b8":{"name":"remoteclaw","version":"0.6.0-next.20260421133219.c14b2b8","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260421133219.c14b2b8","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f53b4b4aa47d4e1f1da8b839f18d61c36890f863","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260421133219.c14b2b8.tgz","fileCount":2683,"integrity":"sha512-48RCBFf6bvV478kMJCgj1ryAIzXsLzsAMJ2LXmZjzqoB8GVVjc2ift1P4RGHEfj6Cc1d8hwVDRDx0qMwXuxckw==","signatures":[{"sig":"MEQCIFPrk+/dSBQ38wuH0/yQm9Q0XAZ2fpIWHq9RC6QFGFQ+AiBKFK53z0E5xGN8HZJQ+MXfMfnkdcgcKZnz8++dmsI1lw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260421133219.c14b2b8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42168604},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"c14b2b879015fbd56e07bdbe9b5819d083aa1b56","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260421133219.c14b2b8_1776778376855_0.48779879563723316","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260421141904.08b3a43":{"name":"remoteclaw","version":"0.6.0-next.20260421141904.08b3a43","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260421141904.08b3a43","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d6ccede0e774193726564414f132a45e2207e905","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260421141904.08b3a43.tgz","fileCount":2683,"integrity":"sha512-7mDsQn3yMLgmcQBMuuI0lDYCKsYc4Qdc1YSgOseXGm/wIDzxhPEo53Osi6IpxA2Ksc5kSBwEIpGJQ7i9tiwAdA==","signatures":[{"sig":"MEUCIFpX1BRMQUSPqo3SqKzBEcmoQXqgFRI9ioKnMQmrjFDnAiEA6QVrLdWO6NESF0qF8DX5wiyl0pbnpD1GILSB7EJXrXE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260421141904.08b3a43","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42165779},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"08b3a433e1c930b0f6fe23ad02201942d0bcd41b","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260421141904.08b3a43_1776781194302_0.6606292405746712","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260421155506.a7bcfd0":{"name":"remoteclaw","version":"0.6.0-next.20260421155506.a7bcfd0","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260421155506.a7bcfd0","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"97c864734c3939e121c7a70bdf63ebee2d37adc3","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260421155506.a7bcfd0.tgz","fileCount":2685,"integrity":"sha512-R+sRGStkVXeVxMmcxbY9MRHZB7W9YvG3il31rD16cV5Fr00BJDqxemP1pyNMZlKpg4/7ZizVxfuwxAHMFgVMWg==","signatures":[{"sig":"MEUCIGB9LH4mzgJBptcorWIHhkaimHo3NJi6zfmBr859XEBGAiEA9zsM7BcniOuZb9F5GeKav7BU/33Dy2T2TRXojxbHAv8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260421155506.a7bcfd0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42163441},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"a7bcfd01287963e19cbeb7c04469bcb988f3d6b9","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260421155506.a7bcfd0_1776786942722_0.2091129895943009","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260421163415.d75ea3d":{"name":"remoteclaw","version":"0.6.0-next.20260421163415.d75ea3d","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260421163415.d75ea3d","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"92141efa09f8329b6d84af9a5912612c81ca49ac","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260421163415.d75ea3d.tgz","fileCount":2679,"integrity":"sha512-f/Mn/SgQ5HW/bKI+mikZXFHTxtz4esvXzLoyVujBkXmZSqrAwrGa0jUfchwjyd4gUC4CaqujXZ6q6ioMr8lT0w==","signatures":[{"sig":"MEUCIGP5gaDD7niMzYDmRrF9yG/X7+5piI+UXBEMcD5gKcpJAiEAyFAQhvOQ4g7LJjtRsx2xCl40Rn8z3YdkRMe8uXEXVew=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260421163415.d75ea3d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41021234},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"d75ea3da45bc4da08790408a42bb23145cce1ca3","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260421163415.d75ea3d_1776789294843_0.179557872244831","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260422072612.5ec00ef":{"name":"remoteclaw","version":"0.6.0-next.20260422072612.5ec00ef","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260422072612.5ec00ef","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"4fd8698489ea23d37f87696ba13f4f3ed4a98f26","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260422072612.5ec00ef.tgz","fileCount":2685,"integrity":"sha512-E/7lDisPZjJVYruUSEnoIOWORLBxVzBWNOgaocH5gF0VjZcvPizxOoEhn9/UE8I6E6WdL65MWJjtmkyVD36wdQ==","signatures":[{"sig":"MEUCIFpN0P+jN/PqamNDDCR1i9k9tbaKNUXrux/YFMXAtS46AiEAk4c+NXZW+mVOWaxI9poXITcqwpGLEzLRajebGPjsTeU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260422072612.5ec00ef","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42163436},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"5ec00ef7e93d386a792e686d47c57fd8f022da07","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260422072612.5ec00ef_1776842808581_0.7161489332573809","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260422081932.f6434b4":{"name":"remoteclaw","version":"0.6.0-next.20260422081932.f6434b4","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260422081932.f6434b4","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"035996e9271d250340f5c090e935ebe6d4b7747a","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260422081932.f6434b4.tgz","fileCount":2679,"integrity":"sha512-jKSdoE9p76LCHFTCyiPWE5R+lZVRIbpFNepNUbDePvMrMO5hDMfglImuZizM/0pO5neGk/zYVI/LxvDqPGVS3w==","signatures":[{"sig":"MEUCICoo+xZb6xcufIaWOkZBSLp04GpBfUcSSXlZp4EVu68hAiEAhcHC6GtLk4F+NBgQ5vikdo2M/h5qA6N+IGlx5uRP9Jg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260422081932.f6434b4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41021247},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"f6434b49c80ba67cce57b832b66621c737caff25","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260422081932.f6434b4_1776846013958_0.6788498975763753","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260422101612.c49bdaf":{"name":"remoteclaw","version":"0.6.0-next.20260422101612.c49bdaf","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260422101612.c49bdaf","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"43244333cbe3b110afe885749373f0d89a82d2e8","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260422101612.c49bdaf.tgz","fileCount":2685,"integrity":"sha512-cC9t8u6OW6bsWZ1LzET96NSXh0vTaH8Oka0vgbJo6vhdiMk3pHlGVde0U0dR92aXkMsqXii6f/mJIRczKQZxgQ==","signatures":[{"sig":"MEUCIQDjw2BJt87yeDe6fJebhjNQULqC8z9NAW8k2KY5L/saIQIgK3G7haSPl2oM9dPiJoWdNfVk1QQa4MVdzMSCZHoX6+Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260422101612.c49bdaf","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42164274},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"c49bdafa9bcaae1d459769082ae25b50068126ef","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260422101612.c49bdaf_1776853011135_0.13061935815670522","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260422105534.8d0096c":{"name":"remoteclaw","version":"0.6.0-next.20260422105534.8d0096c","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260422105534.8d0096c","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"ff1b5e7c24e99c6baeb189e9f04ba9f382cf75ea","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260422105534.8d0096c.tgz","fileCount":2679,"integrity":"sha512-9ig/p1Tp1WUJr7HbjSAE4KUs6PJ42fVLwH6MkevYPajV/ijk7DekrSacG7O5Vtiic6njIdgDJwGLfgV/gDZFIQ==","signatures":[{"sig":"MEYCIQDbkyGMfkByd6S0Ch9uDD2vZ7yLgxC/j4p661Y4+YHBkQIhALZRbTYrF3zjdQ0ICPoAkIDY5fo7qx6QJHM75j9lZwRF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260422105534.8d0096c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41026469},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"8d0096ca4b6847358e3d19f89ac72e23798fb38d","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260422105534.8d0096c_1776855372526_0.4420628052155011","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260422113258.7784ae7":{"name":"remoteclaw","version":"0.6.0-next.20260422113258.7784ae7","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260422113258.7784ae7","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"75371695563e37b3b8dbf28aa1b833ab6c81d74c","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260422113258.7784ae7.tgz","fileCount":2679,"integrity":"sha512-HKhY6G3kYc5h1t/XpvVDtZAzEwpI/lf8hJtVhqn8j7+caRbbmkmaKiwtynp20RQMpv2Ei1eHX/X9bzIcqQZaUA==","signatures":[{"sig":"MEYCIQCIEQV16dzh0QXBIWtYaWBFyePxCNmknp8Rl3l/zDKkIgIhAKca/Gy2/rhSU+/bnlVBRNW5DpajaV3mQBQaU9aWcB7P","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260422113258.7784ae7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41028499},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"7784ae7805cb38c53d5fd4a00bc55d7d23f4c6e8","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260422113258.7784ae7_1776857617417_0.24635479585920161","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260422135203.d1a6e73":{"name":"remoteclaw","version":"0.6.0-next.20260422135203.d1a6e73","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260422135203.d1a6e73","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d9d690337cedc862870c9c70e71cb8154f104c3e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260422135203.d1a6e73.tgz","fileCount":2679,"integrity":"sha512-SDFUVozSTnX11e4bis2atJ4vFYSVnwANg90ID+bb5d+hXao2m8zyTxMPdmRVf6FRv0Rk74k+H6b+M7629vr3AQ==","signatures":[{"sig":"MEYCIQDsVYfweh35m6iItVGL3c0ex3r6QTFp5Isi2ecO8rDvyAIhALgZOdwZ4+57ETDnoExuk/VvZdYvtiyDIeJ+WUG7Te0A","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260422135203.d1a6e73","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41018820},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"d1a6e73adb5f2ad850c936eb0bd99ff6da0888a8","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260422135203.d1a6e73_1776865959926_0.16454491546797034","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260422141629.cd44294":{"name":"remoteclaw","version":"0.6.0-next.20260422141629.cd44294","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260422141629.cd44294","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"0526e62267fe12807348ccd85f8f97684121a705","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260422141629.cd44294.tgz","fileCount":2679,"integrity":"sha512-VXVzrOMz8i4wkEqzVJ5GnDqPnz7hSgp2HAuNxwpVpj6UR82Izcx0TdmzOuqbKkCjUOchxX2o6NMAu9PhwolgJA==","signatures":[{"sig":"MEQCICNQBeIf+hMQykIWIWRPGCIBL5DbZSTFYypu8BCyn5y9AiAa3hrgV9e0YLhWTq++3B4FYcwjg/GzSLoJP99uABlpdQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260422141629.cd44294","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41018365},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"cd44294a1a6a4bcc36b218cbe2b4fcf714883b6e","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260422141629.cd44294_1776867427195_0.8225743690598313","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260422150057.0236c10":{"name":"remoteclaw","version":"0.6.0-next.20260422150057.0236c10","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260422150057.0236c10","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f3b58ecd7c635d899a352e2650b4768ea875466f","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260422150057.0236c10.tgz","fileCount":2685,"integrity":"sha512-J0hQgllF5u0m+zod2aoD/wdMhfm2TBHDZGsKZmwl99aFSMaiwjJB+a3QMbyFYre83BJBOfjkfEE6bWk0Qwjw3g==","signatures":[{"sig":"MEUCIQDwynPWz4xmCWhG4v7/o91afDLzRbDDtL2u1XwvXmkzbQIgTq30vFwIYS/K2apsbVHzseHcj0TLw6YQcU1QQHZ9AZ0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260422150057.0236c10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42157877},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"0236c108840ea16e46a5d64b7967b7b98969b184","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260422150057.0236c10_1776870102027_0.19029542302358737","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260422151159.41ba28f":{"name":"remoteclaw","version":"0.6.0-next.20260422151159.41ba28f","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260422151159.41ba28f","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"b60a81fb33815a265947ffbead0736de05b60a3c","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260422151159.41ba28f.tgz","fileCount":2685,"integrity":"sha512-pDgzT4WFgRc1X6a90Ykbzvx7/UgIJdpB53DzLXeaCnLeGOIr9jckWczXYD1Puvz4hxbzCMqW5vbsDZlZdzzutA==","signatures":[{"sig":"MEUCICL+vrJMB4EZJ1qAhWEjY9k9S17yIGi/24S+qtURXjp2AiEAglmOFYVVtEz3Zu5U1vidnyc4Cs6sipVBmsKSOrRZpG8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260422151159.41ba28f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42158013},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"41ba28f88e6d54bddc005f088bd650bbdd9c65fb","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260422151159.41ba28f_1776870761752_0.1329834170072357","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260422152124.4ec7a75":{"name":"remoteclaw","version":"0.6.0-next.20260422152124.4ec7a75","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260422152124.4ec7a75","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"efaaceb69b81a18fa8a3d63f2aae4f5475d9cf72","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260422152124.4ec7a75.tgz","fileCount":2679,"integrity":"sha512-qMsoUwQnX2tnmC7RI+tWi3vkWScr5VPGAPHHzJNgfzVj0TIyeuFRJC7XyCFbtcqqN/lc2OJompERHGURqcIduQ==","signatures":[{"sig":"MEQCIG8KR2Cqsq5FJq7DyObJ0UbFe9wGUFyHs1ec5EdTeODxAiB1/h3HZIEdf49FONPFroBKKnqMOW0DrUtbdmVgiR5rMQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260422152124.4ec7a75","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41007229},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"4ec7a75a67b90aa373667d2601b7ad55a178c4e5","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260422152124.4ec7a75_1776871323511_0.6234806796520023","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260422152907.d45deb1":{"name":"remoteclaw","version":"0.6.0-next.20260422152907.d45deb1","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260422152907.d45deb1","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"635fe969d66ed1a9c045d646fd7b3231d1ad0fb7","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260422152907.d45deb1.tgz","fileCount":2679,"integrity":"sha512-mpvciDQEPKbe1ufwHqR6SZrXlw+PbfA7BKFV9jbbsxVGCWzv/rzSDl4Rj/Bt5mHmUAui8rKq+YzESZL6qcmnwQ==","signatures":[{"sig":"MEUCIQCSSSoh7Q6j7l5WfNnBrR+Bzw5KeMMMMjOCH5htwG01YAIgQpdgB9NwMCQjvM1kCyysQzMqRGBcp5BKwLw8iA16g1E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260422152907.d45deb1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41007208},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"d45deb14de349a4b19ff94e36e7a3040742b16f4","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260422152907.d45deb1_1776871787883_0.9870565641007252","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260422153647.e33220c":{"name":"remoteclaw","version":"0.6.0-next.20260422153647.e33220c","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260422153647.e33220c","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"de11f838035a79539e984cb3170a37057dbaa823","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260422153647.e33220c.tgz","fileCount":2679,"integrity":"sha512-uA7evEBLTOcgXAI6R8r4dPC0axln3uwg+krmevB0pD/nclN+sRU56G80igSdjZ9Xs/uOdgEYI76xC1L1YbkyUA==","signatures":[{"sig":"MEQCIH6/Upr5OYVgfUY9YuTHRVXpFjrTvcnYH+agiMrWC4fqAiAlqWRNyD3MHZ5sv5r2juWoXtpY4piPyzK6F92vEW0vaw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260422153647.e33220c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":40994776},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"e33220cd0ef91b841a77e07a0675063d715195cf","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260422153647.e33220c_1776872247283_0.9056619211960062","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260422161814.414a09e":{"name":"remoteclaw","version":"0.6.0-next.20260422161814.414a09e","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260422161814.414a09e","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"3a21e8da668105fc6646161e68b5faa9d9cf2cc5","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260422161814.414a09e.tgz","fileCount":2683,"integrity":"sha512-ld9QVp0UX8maYGprldxArLSw3d2hUBjj8Or86ZrgvdAzZhnUbxIjLAk6at5wYgqwFYRRuMB2LTmCrgsn1KQCIg==","signatures":[{"sig":"MEUCIE6zG0xIpgD0cPvAWdNwVUFBBb+Rm5528l9XGGkt3kJcAiEA2aivLgyf52wXtkAQrZWa+8PdIHPs20dvVotePtmjs0Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260422161814.414a09e","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42120900},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"414a09ebc8afdde1c5f95720b73b917468d04df1","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260422161814.414a09e_1776874732095_0.8652458092632858","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260422191830.41a859c":{"name":"remoteclaw","version":"0.6.0-next.20260422191830.41a859c","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260422191830.41a859c","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"7f1acf21a629876a96cdb35c74441639e83741b8","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260422191830.41a859c.tgz","fileCount":2677,"integrity":"sha512-fg4bPakC/dZoLTGF9mK7eojPnZP6ICb2j4sRFw5LUbBDnffj7aD/o1EVX/lSMdDEa3GTOq/VjF8tdWj5/3DzCQ==","signatures":[{"sig":"MEUCIF4GYDzZpyb0dRFfaZdXyxlqogwtN4lIyBGHt3Eu2ztaAiEA0TJLhUZ61F0mIIgmcoM0PJf0VQXma4BcKhW0qrQt58Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260422191830.41a859c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":40977963},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"41a859c6d33e48f4ba750e8c287141bd0615f51b","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260422191830.41a859c_1776885548124_0.26646380783544266","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260422192603.3eff332":{"name":"remoteclaw","version":"0.6.0-next.20260422192603.3eff332","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260422192603.3eff332","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"89cef3d67da5bdb0496e3b6dd7f41a803b47905d","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260422192603.3eff332.tgz","fileCount":2683,"integrity":"sha512-/9QS9//xzaIUTVQC2uQiaT4O7FRrP2Z/ZmWnDskpx+2Xdnab+PIPFS0EBoOV3udfrWQs0eNIVfuXF/VHA08+OA==","signatures":[{"sig":"MEUCIQDNf3FJtFnp7NUI/zDKHJbLkN2sVA7APtytMreCxjkUMgIgNh84UNBIcQCh+UkgBZngwZQCG4h65s5NwghePjvy++w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260422192603.3eff332","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42066166},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"3eff33273a11cb98d8c16c55002633c626f85185","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260422192603.3eff332_1776885999915_0.8283053190767415","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260422201030.c336848":{"name":"remoteclaw","version":"0.6.0-next.20260422201030.c336848","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260422201030.c336848","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"3c46731cbded11ea7c909739c413984fd82a9ff2","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260422201030.c336848.tgz","fileCount":2677,"integrity":"sha512-/yH0ZeGBnVtFQtY019ckM6HwWMPO7Ko3YNjaIWYimi6VxRC1RmuiwA4ojEZxfo3lVLyAHMR7OEbTHmB9vyYEBw==","signatures":[{"sig":"MEQCIE9xR6bMXIpL759YBl8LIDHZ/sVjIlvKMG69V4nd1jiTAiACF/JNIcoK5YOzAsStDsNNP1tLR1NNbOgerTJNaZsTTA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260422201030.c336848","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":40926697},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"c3368487b2c010138ecfc9bfa9cdead74072dd2c","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260422201030.c336848_1776888668870_0.473535363937035","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260422210221.8f07f67":{"name":"remoteclaw","version":"0.6.0-next.20260422210221.8f07f67","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260422210221.8f07f67","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"113d0ad46a26405bf10dc46df377b928fc20fa09","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260422210221.8f07f67.tgz","fileCount":2677,"integrity":"sha512-s/qX0vLAt0tJ9u0v3lK9SyQxuUKasJvYwhunVWuQFAnJiGUxo7YpoEtNIid1LRhIVY8DPr6vOBhapbBeaxlnHw==","signatures":[{"sig":"MEYCIQDgPRe09sF69Mz92TaEO2xIN/gbNKaYBOjyDIM6NJ79NAIhANChmcZDB966hlq5A7NsqGwdCYg6vqVKqzHKU2UojFiC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260422210221.8f07f67","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":40924515},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"8f07f67f970de949b0f9276e1545f9a84f1960fd","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260422210221.8f07f67_1776891779762_0.5219515202044493","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260422215051.9e0ae8e":{"name":"remoteclaw","version":"0.6.0-next.20260422215051.9e0ae8e","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260422215051.9e0ae8e","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d172c93ba0792f331bed99d8fc2553338899d0fd","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260422215051.9e0ae8e.tgz","fileCount":2683,"integrity":"sha512-C5G7MZNJ4X7+zhBIc1vT5b2Q/bjrMose52/+U6ch0EiPR7OaIzlLdPbUshmEp78bo/6AQwLS4kEhlRwdOqYmAA==","signatures":[{"sig":"MEUCIHDC5ZRzJa08XB8AhhWyZxFjsJKh2DCBa8RzUd3LAjxZAiEA0PJhNg7XZ+QqfLKDmUAH3W+boNjZDW4cYSU+dKV0v8g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260422215051.9e0ae8e","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42076364},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"9e0ae8e087a310c3d50fd9ea6e5e72db6a390a77","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260422215051.9e0ae8e_1776894690803_0.6768091562549219","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260422215818.7ac209a":{"name":"remoteclaw","version":"0.6.0-next.20260422215818.7ac209a","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260422215818.7ac209a","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"0ad27bbe84e613e2b17eb411519217720b78a1c1","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260422215818.7ac209a.tgz","fileCount":2683,"integrity":"sha512-TUVSItTK3p0GwY6+OWMHHTBSbSdiZ26XBxR4FNBqKA/yvnRk3eHjDj2pguWvHFowUp0uAHWRVthyZ6P6m9hmIA==","signatures":[{"sig":"MEUCIQDjE1ajfqrR6Dp5OgwslWFNdrGVgg6y8GADF1VCeV4DaAIgWBJvUlftHtS1OOqT3EhUhg6YtZr18vHYqG+7x3RckNU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260422215818.7ac209a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42076347},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"7ac209a2cceeafa257adfc19dcec43167ff25200","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260422215818.7ac209a_1776895137261_0.1553503909880154","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260423070133.a4233c5":{"name":"remoteclaw","version":"0.6.0-next.20260423070133.a4233c5","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260423070133.a4233c5","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"3e0d2a5c00afea68bb4bcdde03142d3158c07424","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260423070133.a4233c5.tgz","fileCount":2677,"integrity":"sha512-XHNFt4Q59nzS7IxOHBUOTeK1j/lpb/WmeXIaSd5jBigczsIb9oV5g7Yi3O5BhxRwp1bc3x1HsFj0SrjU57KjrA==","signatures":[{"sig":"MEUCIFA6/TK+JFO4u4ff7q0DYe8NQtUIHQfvAWYWbpKIC5AjAiEA1qnjcLD+V9D7buV8LiqgAnrL6SqW0941fduCoAXMgjk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260423070133.a4233c5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":40934204},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"a4233c5cdfb8963ad283d8c29d585da36799e3c9","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260423070133.a4233c5_1776927734278_0.6443387253155397","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260423070902.4e7f32c":{"name":"remoteclaw","version":"0.6.0-next.20260423070902.4e7f32c","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260423070902.4e7f32c","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"529ce581a22cd7396693588246d12ab44aaca1e5","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260423070902.4e7f32c.tgz","fileCount":2677,"integrity":"sha512-JHkWjekpVa+k7/GmOPwng19xbDWjT9Fc96QM01uyC/aGHMwrtZgtxGwV1bOtPON6vLD5iidBTWwliM9v/cayaA==","signatures":[{"sig":"MEYCIQCDo0ftv8DNU+sSp2S55SZ/bwQjkge3ez/5w1fGm24kCgIhAIKKVhQifsO4zQAaZUl+TmkGFuz+Pt0Z+3wfRHDtjLYh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260423070902.4e7f32c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":40784386},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"4e7f32ca30c1cf851234125c5c560cfadd6843d2","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260423070902.4e7f32c_1776928181054_0.36999620290206225","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260423132106.bb0e29a":{"name":"remoteclaw","version":"0.6.0-next.20260423132106.bb0e29a","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260423132106.bb0e29a","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"7e89c5bb66ef4e56b8e3fde56b9934b2792399d0","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260423132106.bb0e29a.tgz","fileCount":2683,"integrity":"sha512-fGiv3Ej3kt0ptsjI0EWO8GIcuAG/t/Xt+I/fl3XWCcME+n5+MooWzG3iJfbC3FE+mPiQXB1I+NwPAAxwrfzaAQ==","signatures":[{"sig":"MEUCICE+r0hwpSYGBNprO9vesO4YueOPqrEoTy8rntHTn8sPAiEAsvdfQxGrE3opbETrAd5+IVCEL1oa3kcuRInfMSZ3taU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260423132106.bb0e29a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41923278},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"bb0e29a1586ee956d0f94daf50f3a12b27370fac","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260423132106.bb0e29a_1776950504668_0.6726280012064256","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260423192956.c0698a5":{"name":"remoteclaw","version":"0.6.0-next.20260423192956.c0698a5","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260423192956.c0698a5","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"6e5a51ddd12c461df09971732871365d531f1e87","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260423192956.c0698a5.tgz","fileCount":2683,"integrity":"sha512-O3qewKtYmEpom/DIgjawxloQZH1s5+M9Kw5CdicxjWA9OVOeobv7pjZ0I9X2ezBQakotYiF2C047dHUQVFAiSA==","signatures":[{"sig":"MEUCIQCzOFhSRhWmRexSkSY7zbVCjkEag28w43ScEQ0rSaPbmQIgU4n3J+vAoLP/gW2DbevYEucYcVOtGO11QRW/vf/Dz5E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260423192956.c0698a5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41919384},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"c0698a553c816b40994faf8cf29ef85cf249c3cb","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260423192956.c0698a5_1776972634961_0.19593007382134164","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260423193743.7d49f34":{"name":"remoteclaw","version":"0.6.0-next.20260423193743.7d49f34","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260423193743.7d49f34","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"4adb1af9a211ab1a80a79a0dcf963f2c50956e32","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260423193743.7d49f34.tgz","fileCount":2683,"integrity":"sha512-UlVBhFJGK3oTmL7AqC4kBC3EJYuJgh9BiTCi9ibncCQmgqgVhOIHnKY6C/g2k5KNuK//ScJitGNBCkQ0E0voUQ==","signatures":[{"sig":"MEQCIHaRrx5LvdbksyFiXyB8uWKHS5kqs4stKf+RrIH8k8hmAiBNYiv4jKiO3OQwxwBr/ow4rufwRf4nGCjKGUnXvvxqiw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260423193743.7d49f34","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41919388},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"7d49f34872781bdca3542e7126970e10715b7bfa","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260423193743.7d49f34_1776973102661_0.1160578415421556","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260423204115.21eda60":{"name":"remoteclaw","version":"0.6.0-next.20260423204115.21eda60","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260423204115.21eda60","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f4b4da3a9160c941ec3a5e2677fde85711d2a85e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260423204115.21eda60.tgz","fileCount":2683,"integrity":"sha512-hY0M1zhDj3kIf9lz7i5L5C7uHyzWqnKj1fZPKo1Vzv0HyXUfWbpgrpnDDxKUPEBDRzQTIWQyxkZ/xqOElAYeMw==","signatures":[{"sig":"MEYCIQDwANAxMsFgL0xiel8OkeSD/UuxRoQOeiLsF9l7lRNZPwIhAIaB7fX0nDG2V9cHQfSTmcRy6c18RphWsi7n1BSmRo7L","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260423204115.21eda60","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41919371},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"21eda604ff29b875d98884cf3b034cdae75f9212","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260423204115.21eda60_1776976914114_0.2574211706332483","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260423204839.7c1c59e":{"name":"remoteclaw","version":"0.6.0-next.20260423204839.7c1c59e","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260423204839.7c1c59e","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f321d1f647657c3ef3bf0e327d7e477315f5265b","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260423204839.7c1c59e.tgz","fileCount":2678,"integrity":"sha512-EHfQtqLkch/6vWD8ftiFxv5fiyI7Ab48mBqQGloxSVWAwBQZrug03FWuxPoz0sVQE1/og3X23hvYenF/Wc0epA==","signatures":[{"sig":"MEYCIQDeXy7CQ9vj9xnL6XtZTW3P6oeNrxOP4+INbsDTqIQkPQIhAJB2vEE563dxMfESrX5kcs4CwEDztUIElsWOGiYeELTp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260423204839.7c1c59e","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":40780840},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"7c1c59e24d7882630e116b07d0a95d2caf5eb02b","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260423204839.7c1c59e_1776977356840_0.3681518027382089","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260423205610.3b44504":{"name":"remoteclaw","version":"0.6.0-next.20260423205610.3b44504","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260423205610.3b44504","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"91ec0c23070e78dc4ee2df5c40a8a25201b42f06","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260423205610.3b44504.tgz","fileCount":2678,"integrity":"sha512-7OOAOSbuViFxHmR3QZdnn7noo6ahXvA9wh0/pe9ba1htZ3gsfo8i2M/JrC4lallpRmCvPnA+QOU+dkNdoGnF1A==","signatures":[{"sig":"MEYCIQC1wlHVcQBDiNCfHZGbDtVulsjVpkKXaMZpd4bbic71CgIhANh/W4mPowq7eQs15Rg5RlSyd288LObaPGP/sECgsZrh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260423205610.3b44504","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":40781613},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"3b4450458297188a52d14f543c2f7cda6c0df05e","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260423205610.3b44504_1776977809029_0.17751437906306822","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260423215422.cfbfbe2":{"name":"remoteclaw","version":"0.6.0-next.20260423215422.cfbfbe2","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260423215422.cfbfbe2","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e82097d69038544bbb743b1fd88ddb7dc4019183","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260423215422.cfbfbe2.tgz","fileCount":2684,"integrity":"sha512-sD2/g46Ff6T22vrGGR7MVtbUsZmmBgew6A6YiwRDaUg6KDEgzlcDnh4UQJsltxzgcSuV0AlQ4I6QDId0Xw9glw==","signatures":[{"sig":"MEUCIQCXC1ECqGi+xrgj5SWMe7Ep3YDy3ubwE5TZ9cLF8LE7XwIgCH59TvXybZZZK6hdAXHiYPk9g1hFDClj80EIAW8Mp0k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260423215422.cfbfbe2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41922966},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"cfbfbe23abc89f47a1774f55cea2e0253a6b61f2","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260423215422.cfbfbe2_1776981304708_0.35672890372589783","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260423223340.5133684":{"name":"remoteclaw","version":"0.6.0-next.20260423223340.5133684","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260423223340.5133684","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"b4cd9e47f80ee1111a8399b3f3107baf54684fff","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260423223340.5133684.tgz","fileCount":2678,"integrity":"sha512-KwHGmc9qP7HQML6aW+FymkYG0RP1Y2moIOn2Eg+Ul5hpZf8GvHBWG4+rMZ+wdbHIAnl8kBWZcq/smzbdxtdvaw==","signatures":[{"sig":"MEUCIDovnGmLIKK3ggLwwJe6HiwhPYtRcB8AdcoRRNPa8TrJAiEAotdciRm/lukZTWTHdIZ+3Jo5LVWk2y5cEkBsu2M2D+E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260423223340.5133684","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":40781491},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"513368446ebc16b52256ff990391b59d3b9e1e6f","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260423223340.5133684_1776983658299_0.9529219831155431","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260423224057.a31bba1":{"name":"remoteclaw","version":"0.6.0-next.20260423224057.a31bba1","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260423224057.a31bba1","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"fed30779963c7499707719b1c8f54fbe1ed27e00","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260423224057.a31bba1.tgz","fileCount":2684,"integrity":"sha512-PwwyEfX9/kt9Nsd8459x1JQbevRL+UYR19bhmRnj8NivqmN1yDKYZP3D6aUQ40O90fwDOSa2I3nNh9FvPg3acw==","signatures":[{"sig":"MEYCIQCAkXS+a85vp3J4kh0aY2uFQ2YctC87y3IEpzhUmtyGDwIhAOy2QlkDYHEBsY+kpkoI5NfMVmGrIS7PfOgItPIwC1mV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260423224057.a31bba1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41927648},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"a31bba13bc5b1465cc24c3abbad3acbf45396033","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260423224057.a31bba1_1776984095871_0.2136319236574511","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260423231732.20984fb":{"name":"remoteclaw","version":"0.6.0-next.20260423231732.20984fb","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260423231732.20984fb","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"ac543f411ff63e2bec1e2f92f1b439eeedc42327","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260423231732.20984fb.tgz","fileCount":2684,"integrity":"sha512-2k0+ueGisfoHE1OHTMCPZNr+JjIyoqPrLjc2H5JFmPu6VKPLQYDqkcDP2h93Hzb/0Ksi1fkiAIHOqXre1MKOvg==","signatures":[{"sig":"MEUCIBoFKKZbUcsidYqVWlbBFZf9XpEaNbq4HvpPsE4nshaRAiEAgqDTWXR9SYFEHucufLntwVLSToPAvCaaIaaaVkshm3U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260423231732.20984fb","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41927524},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"20984fb998958c6c9b3e35daf28ce2c123602f95","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260423231732.20984fb_1776986295030_0.08542091432864174","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260424063236.588e946":{"name":"remoteclaw","version":"0.6.0-next.20260424063236.588e946","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260424063236.588e946","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"0c6061a23e3b9c032b2da14fcfa27ec7fe5ccf2b","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260424063236.588e946.tgz","fileCount":2684,"integrity":"sha512-TwN9s0soaMKI8FikZ+SvHuZDqCRe82M/AkXyZB+i9nJrBD1T2lNdAsLxjRp71sMJkYmWrc6ev656UEydIexlxA==","signatures":[{"sig":"MEUCIFnFGHo7kXstjs1lmzmRAwc/6EDSBBdv1/Ujb+wHa4ULAiEArzP9TQWVIjX0sGSle2iU/Nw47oh6ssfdPwmGtS6kmCA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260424063236.588e946","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41927264},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"588e946aab8f019244283504973383425caf5776","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260424063236.588e946_1777012397289_0.3012224419296168","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260424074947.b495ae8":{"name":"remoteclaw","version":"0.6.0-next.20260424074947.b495ae8","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260424074947.b495ae8","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"ba4dca2a8e02d29cc008503e8b9399e9e1ec65d7","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260424074947.b495ae8.tgz","fileCount":2678,"integrity":"sha512-A7DfpYn+fopxTqSNJ2bsgbjlPOmt0eBVtXd+ocyo5JDXF+kmF7u0eVsECjDe2ZrR93D2pGdc7K4mmQ9Oo///vg==","signatures":[{"sig":"MEUCIHJ13cK8v2eQuonH7gkxhzYPstFMuESAIxKF68s+zKqMAiEAv44zGSJ0ipVHiULoxNU+RhMHhk8sTEX1Tu6W7bajZaA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260424074947.b495ae8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":40790223},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"b495ae82b0ed8ad61b2cbcd46c5695f0b8198822","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260424074947.b495ae8_1777017025255_0.580655802809706","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260424110851.50d2537":{"name":"remoteclaw","version":"0.6.0-next.20260424110851.50d2537","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260424110851.50d2537","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"2ea464096ae8c439af03b44a0890bd4a2a6afed3","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260424110851.50d2537.tgz","fileCount":2684,"integrity":"sha512-QhLqTtfWQ/knpjGRcCiualG+sUn+MSrFhk5963MYP2fgJXwK/iwbEdkUwTijuNX36BqTyFEqOUbdh5gn0AyzSQ==","signatures":[{"sig":"MEQCIFnngpdhVg6nvX47lJPBWLnbMn3SIyT8CvhUGblQAhN8AiAd5FRkGKW4Q/ldgEEF5JEjYuXgXoBqvQB+4mQLKw6vWQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260424110851.50d2537","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41928626},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"50d2537b8827e39b1c38bfedf4cc96cb34db3f4e","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260424110851.50d2537_1777028971647_0.5679429622658791","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260424115910.d65576b":{"name":"remoteclaw","version":"0.6.0-next.20260424115910.d65576b","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260424115910.d65576b","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"128540b3babec3b5f4346e1e270fe671958c4c06","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260424115910.d65576b.tgz","fileCount":2684,"integrity":"sha512-QhqZGXrGFWIIpdEAqcO97OrGDvAcJNaGTgtTCboiXD+t7Z0SVNlEL6xMT9kKAHeaprpymMMwffW/8jNRRflMXQ==","signatures":[{"sig":"MEYCIQDgx2e3W156oKliwr5WYbG/11zN5e7N+z7h8lPFBSMF/AIhAMkYfVvGrr9TJNa3fPn6gPgHkTI9/2bsHrCuEg2nvubO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260424115910.d65576b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41927998},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"d65576be8aff75466c7dbd5eb3f0ca53d51fe572","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260424115910.d65576b_1777031988069_0.2355001352204853","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260424121738.79aa071":{"name":"remoteclaw","version":"0.6.0-next.20260424121738.79aa071","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260424121738.79aa071","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"5b1fcdb8f06dd28bf97559f0a94006f16908a01f","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260424121738.79aa071.tgz","fileCount":2678,"integrity":"sha512-nJqnyBouh6f6nYXBuM5kDfjxI9C1E6QyOcLTMMFzSjIrJlMdiqXzTrFWbgD6u/T6uPyrBgsiktu60KJF4XfyAQ==","signatures":[{"sig":"MEYCIQCwmAslD1cxBXaAmk8CMKFW6ag7ov2R4a5F68YOaUEsbAIhAP/2O1Gr3QJ22OzSnSP4ibHw2l95tZlafJlfdQvdKKYY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260424121738.79aa071","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":40789325},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"79aa071324a13887f557e3e77e00bf6259c2c23c","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260424121738.79aa071_1777033097189_0.42013454554001983","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260424122513.b13e053":{"name":"remoteclaw","version":"0.6.0-next.20260424122513.b13e053","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260424122513.b13e053","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"a56489f010e1e44cba421b44e8f0cb6945f91816","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260424122513.b13e053.tgz","fileCount":2678,"integrity":"sha512-/h+dkLnDYQYheCFWQuOxoDFfZqji/zkPa1yVl3rRBIkZFTbZcHa+91phVYo5CFd3jmGJb7B713Zxr8xloCAf2w==","signatures":[{"sig":"MEYCIQDicneFlVMdt3M3Pvrn3cvVNBXRAN1R6eGypVh9n1hJZgIhAPXLtkWP4sooU+MUsr9MUf3WB2nY5zGpbdL1AOquy8ST","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260424122513.b13e053","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":40786075},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"b13e053c7d1104b4027d455d4b2e784b6324171c","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260424122513.b13e053_1777033551171_0.36489276269559157","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260424123236.80d311d":{"name":"remoteclaw","version":"0.6.0-next.20260424123236.80d311d","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260424123236.80d311d","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"6c118c55bc5fd0b97082485fbe41a98819703345","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260424123236.80d311d.tgz","fileCount":2678,"integrity":"sha512-2E5QXmhaJKTKX9U4RtVHCwB09S5bhGJQIHRXH0uPFFvLRfv1DNUnyZ8NSKv5tgh9qaEZYt0Fy5Byj2VH9W63CQ==","signatures":[{"sig":"MEYCIQCe2PbFSeD/U6bs+Z5OzZGzmcoblZ3o18kC+YFBFgqVCAIhAJAbwuPaznzOeMNvfcrlxN0cr4fpYhu8Ao8oyMpMgbiU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260424123236.80d311d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":40785137},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"80d311d25a0186502fb638129856f64d7d598ec5","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260424123236.80d311d_1777033994180_0.4898931313223558","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260424133528.2cdc93b":{"name":"remoteclaw","version":"0.6.0-next.20260424133528.2cdc93b","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260424133528.2cdc93b","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"17c0097c474fad537265934824bf85b4ff71b165","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260424133528.2cdc93b.tgz","fileCount":2684,"integrity":"sha512-5JcTP2XmQZEf80K4Q+CZtIejqAXk0cTlYsyQCDlTPDNRe2wChfBZkw/wpsSz2aCS7b0qQC/Cu8KQUKu0KnaZIg==","signatures":[{"sig":"MEQCIBZTAku7S/9m8jjyzX1gBQJNuRDrSkfKpbYoTFHrk852AiAC6t7FzoSlb06PBgWkD7+yIwbZKvS1Z4Iz+xPFoJduxw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260424133528.2cdc93b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41921714},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"2cdc93bc6ac0d45ca98c3048d907456b084c1892","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260424133528.2cdc93b_1777037766716_0.0991577046837524","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260424142103.2bd2fe6":{"name":"remoteclaw","version":"0.6.0-next.20260424142103.2bd2fe6","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260424142103.2bd2fe6","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"a6509f71a56054bdd9014b3ac903472b62afddc1","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260424142103.2bd2fe6.tgz","fileCount":2678,"integrity":"sha512-c8JxAKXRd1mSxEGoFb5uOfqQdLbINEJDIOknzdSxb8Ok7c/tAYTER6Jz/gcRlOR3AXqqFDQnvpXyyvXJwM8A/A==","signatures":[{"sig":"MEYCIQDqIyUOb+3UzF7pzjj7HMDOAtjL7LLEEULT57DrzWXSmgIhAJBzvtjLS/i4Ov+d+vxa57S+WeOzkrQ+S51DGwpzhl+g","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260424142103.2bd2fe6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":40783203},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"2bd2fe64c029d00cd8216686dd4e59d09c2c826a","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260424142103.2bd2fe6_1777040501360_0.29865024832943","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260424150156.c5d2cc1":{"name":"remoteclaw","version":"0.6.0-next.20260424150156.c5d2cc1","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260424150156.c5d2cc1","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"b3455c3b3d82d62602683acdf0978e280e1b6f80","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260424150156.c5d2cc1.tgz","fileCount":2684,"integrity":"sha512-awXwI1h+zqA84OtnCz+0RJ/AYQ0Y1fvXTXv8pd05yyTpSdXcScL6LYHvy7pUWiOUgjifkXJ9XeO4DO5kjU+MSQ==","signatures":[{"sig":"MEUCIEFtDEqz95/V8+x+KOMVFisaDtpAuFQqYcpdbH49GVIsAiEA06DX5DaJiwMUBzPNlKRa1+1vRL/x6Ass/OyVWPtwtg4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260424150156.c5d2cc1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41921919},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"c5d2cc197fdd97a3a3c13c87dbe17604ab4cfe73","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260424150156.c5d2cc1_1777042957274_0.997176378707574","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260424150921.7aa61e6":{"name":"remoteclaw","version":"0.6.0-next.20260424150921.7aa61e6","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260424150921.7aa61e6","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"67a8c0e156f49ee9e777acd560bfcb90979bd90b","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260424150921.7aa61e6.tgz","fileCount":2678,"integrity":"sha512-z5zpstsRTaLvB8aYi364BQi5354WZSfthdrZwqZhwntxj5uNtc4bHOsGEI2Wnwc1lrR65auHgS+QAF2RBVwMow==","signatures":[{"sig":"MEYCIQDueYl5K5No+Hw9qUUXuGB4X2thZcHRDd8x5y741ECoXAIhAMa4FyLEoahdOAMu5cZ5Dy2bPBtu9KhKQV8DKVp8mN7E","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260424150921.7aa61e6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":40783182},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"7aa61e6e80092879de6875b3a00e4e056c2dee22","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260424150921.7aa61e6_1777043398255_0.7997211469410066","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260424151641.3dd624b":{"name":"remoteclaw","version":"0.6.0-next.20260424151641.3dd624b","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260424151641.3dd624b","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"9c6a0a79c546f187779c5d9b53854015178ac1e9","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260424151641.3dd624b.tgz","fileCount":2678,"integrity":"sha512-gC2auqExNHfspOjb6LTQ6CwUsYUi+4/obZghXB+jCPDFaVS7g91kpq61ldwB/3zM6zagkYcR7SOxsqXEzL9M0g==","signatures":[{"sig":"MEQCIHIPF7pBf1K7bWzqtxhPypoYi6tmppHz50yyHBGDaTtiAiBDRgJ5RYT8zqCngZPJce6ueEIT17QlWpjp79f2msnVrg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260424151641.3dd624b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":40781922},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"3dd624b800bcec2bb99d0b1ab8d4a4ece42dc37c","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260424151641.3dd624b_1777043842163_0.2519409488772053","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260424153007.365ed93":{"name":"remoteclaw","version":"0.6.0-next.20260424153007.365ed93","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260424153007.365ed93","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"032599bbe1106c8e1925114a89422ffaaec609e4","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260424153007.365ed93.tgz","fileCount":2678,"integrity":"sha512-d3RYgyAda6VM59KB+fy/2yNHdWAjd6ofFdEky0ab05gpITuGnoKQQuyO4IJj9c3TnAzJ3P+iMsP2gUXhZ6R0nw==","signatures":[{"sig":"MEQCIGzRDJhgOQ6KY/68XDxu+idVFndEz8Ue6U0FKwcBzLjPAiBXtQ/DxIzGJWQ3MAGl93Z6d1s3J93zmC/eLnCB9XCb9A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260424153007.365ed93","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":40782135},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"365ed9364db3cddf69a3f07de8699a6367a4d678","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260424153007.365ed93_1777044645578_0.969742216605417","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260424160557.ed860f1":{"name":"remoteclaw","version":"0.6.0-next.20260424160557.ed860f1","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260424160557.ed860f1","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"5cb663f88fbeab246b5986e33974a06025a16ff5","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260424160557.ed860f1.tgz","fileCount":2678,"integrity":"sha512-os+Wnu6I/ucMiKoj8Q7s52W2Ip4p0vk42jjiATGt8ewwwEKNvC0Tnri7LufLsjtipvA3SxJnJpeS/crsYbhhGA==","signatures":[{"sig":"MEUCIQCUyiKCptGiYp57DvEQ3FEAzGeRjl8IQPWr8XHvt0H03AIgQoiFVSykKhi9FDsTV2ErrU4yNMQYDNzfu33nHxRAQfk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260424160557.ed860f1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":40768084},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"ed860f16f2bc36962751be59c9e2135c06f79a40","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260424160557.ed860f1_1777046797879_0.43944658368002787","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260424161259.16f3c9c":{"name":"remoteclaw","version":"0.6.0-next.20260424161259.16f3c9c","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260424161259.16f3c9c","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"c71c4dee5863f2aa73b674ba33c0f4a5e3bba787","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260424161259.16f3c9c.tgz","fileCount":2684,"integrity":"sha512-JxV11+3ACIn6hUER6SqTEa3MbN0KL6D0G+Og6fTYXC/nifRqPvG8HgTQoVevJIvozKNeOe4kYIbEbmFqEKNTKg==","signatures":[{"sig":"MEQCIBKDNOhNwUrbR7UAJ2fPXg7b80VmRyuGXyiSdoiQmtevAiAdQyPpkEzfUXIAqlZqUwziuUUZ5AJUpw6xebN1htZ5Yw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260424161259.16f3c9c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41905462},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"16f3c9c338dc789bd50cd6899b3d6136ebace1d7","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260424161259.16f3c9c_1777047215166_0.7245493950005732","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260424183444.c56c7ba":{"name":"remoteclaw","version":"0.6.0-next.20260424183444.c56c7ba","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260424183444.c56c7ba","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"aec21c686ca83a35707df8a32ad93e4e017b380e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260424183444.c56c7ba.tgz","fileCount":2678,"integrity":"sha512-Q6eOnJWJEWKLVIkk8SZyc+tU6eVihZwTAIsgUEE4uuWu3hW1H/SXeXUbYBiU3O3IrEYx8oVZpvTjFHrZDMK4jQ==","signatures":[{"sig":"MEUCIAtHzEQefYoZTpKhEpT0a1Ul0zM2Pqh+lsNV7rz5soeaAiEAm6kQFMgw3eYfiiJwMoKgItG7KX2NNlpgi4OU0EdfJZ8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260424183444.c56c7ba","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":40768671},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"c56c7ba868d95af0b5e0b9ba3a38e5376740aff2","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260424183444.c56c7ba_1777055723881_0.2528629058071248","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260424185639.5bd0ced":{"name":"remoteclaw","version":"0.6.0-next.20260424185639.5bd0ced","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260424185639.5bd0ced","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"2c11715ff332cff1366f68f66dbd213b86bdc843","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260424185639.5bd0ced.tgz","fileCount":2678,"integrity":"sha512-W/C/CBLFd/GgDXtWCHrduCqM8xEHKxOHlUDtcS2zl1u+EsY6YGikVtKH+i7O+IQPWH9DJ3z11u9r8CDuP5TlDQ==","signatures":[{"sig":"MEUCIQDMm73JrznF2L3S4WULqVRNDSmBBaIba+2la5c53j4pIwIgczYvwbde5aiN928vnJmcm53WxbJVGbOHrKD2A5s4fRI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260424185639.5bd0ced","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":40766154},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"5bd0cedf84688b77483452afa29ff8e3b2b763cc","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260424185639.5bd0ced_1777057038396_0.8502853332554445","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260425114833.a88e5ff":{"name":"remoteclaw","version":"0.6.0-next.20260425114833.a88e5ff","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260425114833.a88e5ff","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"343e711b299fdc2b0d953d32f3312df6af2ad3da","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260425114833.a88e5ff.tgz","fileCount":2799,"integrity":"sha512-t9xyY/UJvx4BpbHeo2Pah6tFze1yk0XsewAkbEOrifbQKeFBPfxj38GsrORST3H7TtGml90UQtjDzlBClmjQ3A==","signatures":[{"sig":"MEUCIQCNgdL0bAtfemVtmEiXEbDOfOSluG2icERkGBZUztbjDwIgNgHy4FrnholP4tv5aj+GhR1enUNNkM4yrngiK1lr5bo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260425114833.a88e5ff","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41462962},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"a88e5ffba7e8e0237e585ce27069f8db2ec48626","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260425114833.a88e5ff_1777117754103_0.07100599341119551","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260425125249.0a11467":{"name":"remoteclaw","version":"0.6.0-next.20260425125249.0a11467","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260425125249.0a11467","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"1658087659400e8e76eafda7a81000a82bd01d6d","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260425125249.0a11467.tgz","fileCount":2891,"integrity":"sha512-YsnyG+0xXZXCwU/Qo4XieFK4FGaxeolYWrPZw4x2pZbhG9Gc8e4ca8wpc/M8/ro3v3Ifdg2CoFdXGEJm3/e5Ww==","signatures":[{"sig":"MEUCIQDwyT5T78VWLrk1rNoHVXsR70ozncSpJvnouMsEN+wgqwIgSnVn12XTrSEdUGJXH+kf4BL5QFcMpd8nDjTb7lPpA6M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260425125249.0a11467","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":43183963},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"0a11467e3bf683562fe5d91e9e31cbdc3e912606","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260425125249.0a11467_1777121608899_0.19093094588629445","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260425134322.f9b6bf1":{"name":"remoteclaw","version":"0.6.0-next.20260425134322.f9b6bf1","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260425134322.f9b6bf1","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"a8a8785695e9ebdb188f6ee25e9319d9001b6a5d","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260425134322.f9b6bf1.tgz","fileCount":2971,"integrity":"sha512-+sxr4i8qCBPrJFhY7vkkPxIRCfNde+IR7nwscl6qfO5GdWLbKLuBneKHM+b3oo241a9zyFt1oMGtq0MrDS3u0A==","signatures":[{"sig":"MEUCIEEf2vmhadnh0hjqJDXx9YEYaU00O2dVTlXRcFPfeMhfAiEAlKzs8pS8y/SMO/27JRbHceKUGLjQHNK5xSKO3LVndag=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260425134322.f9b6bf1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42410290},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"f9b6bf1879f67d455ea9ef869621e7ef2b2015aa","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260425134322.f9b6bf1_1777124634104_0.3422799906464624","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260425142201.e66228c":{"name":"remoteclaw","version":"0.6.0-next.20260425142201.e66228c","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260425142201.e66228c","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"82deb6433582d9e940b63010646456a08429f787","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260425142201.e66228c.tgz","fileCount":2994,"integrity":"sha512-5DJX0yi5XiPOZe2+JdDB8Ad31ZLYgOA+Rx5lmC5lVGg7S7Z4e6Clq3wYrqLA3bnTyUgLy0Ou+y3vtsUGPgP9Gg==","signatures":[{"sig":"MEQCIDSAnHdL+J/bkRyutg5hjkvs8vIfu0fSTDbdrNUaMJpWAiAJk5+djhs1Z1lpiqKSf/1g2BKBC+AUc3NqBkRws1aB6g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260425142201.e66228c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42517110},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"e66228c5d7a72bd87360839eb20c53c4827a09be","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260425142201.e66228c_1777126963120_0.4246960120212455","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260425145536.b8ec289":{"name":"remoteclaw","version":"0.6.0-next.20260425145536.b8ec289","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260425145536.b8ec289","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"5617ab1d0b68b413997378eb57f08bb497a47c7c","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260425145536.b8ec289.tgz","fileCount":3016,"integrity":"sha512-KrFd+jFWwTjGoarIXB8DmPuWwKL7l83Er1+Iz53wQalx9j6lm1nRJZdoUPVcjOWTo3rSnsF+s1XSr+eD9j4z8Q==","signatures":[{"sig":"MEQCIGQVOfeCGJJu3z1D4DvDCzt+kAcvVMPEh2EYVH0AvW37AiAdSNphZT93/cPQK1XQkKvc1PYXZgUvf2kQ8inDtDmC+w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260425145536.b8ec289","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42605839},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"b8ec289d8a33b5a72abe9b8f8311cd86c64c6483","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260425145536.b8ec289_1777128977181_0.2194739662263252","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260425155011.23432bd":{"name":"remoteclaw","version":"0.6.0-next.20260425155011.23432bd","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260425155011.23432bd","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"39517d3e6fc364ab4c34ff0002ada2791695cda6","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260425155011.23432bd.tgz","fileCount":3079,"integrity":"sha512-PGA8s7g9pQn61x2h6iI0n5AiA10yk38x/0iWbR9feInjdEBRJe3DokBv5wbyxvbtKSteX9//IjnzTxkemxv6pQ==","signatures":[{"sig":"MEQCIH3kEQfdptrhSrLhOjYvpnRNC2D/pbyuyo5ZSUULuqicAiACh2VyHuPCU/az9lX0d6G8KCb2Lhivtjubvmbx2oTqlw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260425155011.23432bd","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42846698},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"23432bde89de12779b09346bbcfe63c0de64c19b","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260425155011.23432bd_1777132250490_0.7246903433360627","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260425192453.6df4660":{"name":"remoteclaw","version":"0.6.0-next.20260425192453.6df4660","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260425192453.6df4660","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d4661e4b8fdcfefaa35d79810533a92c91c56300","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260425192453.6df4660.tgz","fileCount":3079,"integrity":"sha512-LjHInxN9SkBYgIwclCW6/iQgIaS62LvrTY27bfO+TrY+wvWM3BjiljCAv/uuBao7PKZAZUr49a98Xn8dUXOoZA==","signatures":[{"sig":"MEUCIQC/hNme6tQAR22g7YPFvYMCO7UWcMurDW6ogWg6HR5gsAIgNGFwHibFy4NuSeX662WmnNEdSt/BlUzsUNDotj7GOBE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260425192453.6df4660","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42846822},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"6df46602d5867ce185811862ec5407d8219b5f24","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260425192453.6df4660_1777145134092_0.7569113789034672","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260426064501.9aabaf8":{"name":"remoteclaw","version":"0.6.0-next.20260426064501.9aabaf8","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260426064501.9aabaf8","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"1411efc4cb15516f6d5b97b985e269d24935b410","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260426064501.9aabaf8.tgz","fileCount":3085,"integrity":"sha512-5im9iYMn/5QWAK2LmUpM/7WwUi8O5VhA53uxTRmyDHUiTx1cXD5Akv3GgAfJNqkEecXaHZs2E3dFGVgV1dtt5A==","signatures":[{"sig":"MEQCIC7wQNRlKlW5oYK1z/KcSVEyvCnWwfFgJ7ZjP8HcvOZ0AiAw4WwWtcKK98zC95gsTxVsLpV9MtzgA06XemPxAysUvA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260426064501.9aabaf8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":43985606},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"9aabaf817f9ec49f7b73c1c1ef4a3e27a24cd320","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260426064501.9aabaf8_1777185944047_0.9007055687827001","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260426065609.41b28ca":{"name":"remoteclaw","version":"0.6.0-next.20260426065609.41b28ca","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260426065609.41b28ca","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"85e43ef6d3a33947ee02a0cee5ca322b2ee3e0a6","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260426065609.41b28ca.tgz","fileCount":3083,"integrity":"sha512-zTEmBmD5Qjue1KJHdjP0yUPFHTmlM6KaSygRndtFdqrHy5YSyqcJaj/aHhRPG5595Ebih3K+1hCCR4w6HhlGRg==","signatures":[{"sig":"MEQCIHFIBd2d3KViqXu2pBjC6fXM/Mw4bW+J6InCS3fcYkP4AiAe9Pl5jhRhDpDUthwlfitSvjtLzTwekQNLUIktQJpKtQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260426065609.41b28ca","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":43928654},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"41b28ca3f12df8d99972eed38fcdcad635c59268","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260426065609.41b28ca_1777186610198_0.44563009498621886","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260426070333.9105a9e":{"name":"remoteclaw","version":"0.6.0-next.20260426070333.9105a9e","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260426070333.9105a9e","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"30a20337fe5f830f01c67deb1ca8542b2931bd42","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260426070333.9105a9e.tgz","fileCount":3076,"integrity":"sha512-IB/ylJrXDfC+bHKwHtF6K339Icg26ArBgwVaXiDsXy3R7QFUleUhxceh9EHU/iFxpp7q8xmjwIRFlmJxvfcH+Q==","signatures":[{"sig":"MEQCIH5bJvaWMpky22V0E6BbtjFYzLOpF0nliV1BzE5Wb3crAiA5ziXbIxprMqd18eCASSe7Hwgoow+I8eAfpF8lXQU1Hw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260426070333.9105a9e","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42758038},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"9105a9e158c2633186f6bd3a8e01e83868d6b6fc","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260426070333.9105a9e_1777187053123_0.053347485078643286","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260426074027.be9eaa8":{"name":"remoteclaw","version":"0.6.0-next.20260426074027.be9eaa8","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260426074027.be9eaa8","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"2f0f727ee6f199fbf4c1d1c1462a6641939cf7a4","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260426074027.be9eaa8.tgz","fileCount":3076,"integrity":"sha512-WdeYxcSRv8CaNTbkPqevi/lfXR3OPDVhlVFlleuQV0wKnCTuzNmmoMj0KXo1hHO6L7NNBDmHZVQY6K6FL/a+2A==","signatures":[{"sig":"MEUCIQCrd+4qEO+hjhzWYGblkF4OXeIamrfPC+htPlcIr/0GcgIgXTHAkWgWTQ8DFFfWZVtJ4ga6b/iOOhndogeU8MtSM0g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260426074027.be9eaa8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42758034},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"be9eaa886afe1cbcf005a7d10cb6de13ba59c7db","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260426074027.be9eaa8_1777189264764_0.5738582175295988","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260426173229.31070dd":{"name":"remoteclaw","version":"0.6.0-next.20260426173229.31070dd","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260426173229.31070dd","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"b1df6832f57195d64314ffccf06fa2deb0c1ae66","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260426173229.31070dd.tgz","fileCount":3082,"integrity":"sha512-OP+wueJWVaKdOK3vhAuxw7z9H/1kt7FAGaw72tGBWR0gnIx7PFXiPjezihl5rHebr61Ns1i3VuLgGqBS/cVxig==","signatures":[{"sig":"MEYCIQD2Jjr95DxFyTcrcP0OD7TNtOagciWX6MCWEFs8nx0f4QIhAN/Tm/TSO/6XYkum8DG1rHcz7WBP7rwe3yF8a9wl5IXq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260426173229.31070dd","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":43893295},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"31070dd0c0442053500cce0a7de46c18fb513d59","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260426173229.31070dd_1777224790297_0.024190476620612467","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260426181621.f1f8422":{"name":"remoteclaw","version":"0.6.0-next.20260426181621.f1f8422","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260426181621.f1f8422","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f41a868c863b3ad35622f878fc235c9636fbaa71","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260426181621.f1f8422.tgz","fileCount":3076,"integrity":"sha512-RONwTzFeXT+2Vq7HJhCKxxZCcXH2xG/YLwBnkz1SRLnwN1sMqNUZsgx/cryBtlebeAkBYB5pi248IOqwABLedw==","signatures":[{"sig":"MEUCIQD2urAs9M8mY9Q7VEDNpomwwgd1s8bOBAqc8e2sbPyBSgIgeV/DzL5g1IM+BYIZhgSdeJ0T20B9+CweFwVXsCJxc/s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260426181621.f1f8422","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42758038},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"f1f84225f390be5e9dd2f82f8b9ed4ae0d44ab80","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260426181621.f1f8422_1777227424157_0.49105686909693147","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260426185155.7f1a31e":{"name":"remoteclaw","version":"0.6.0-next.20260426185155.7f1a31e","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260426185155.7f1a31e","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"185e3c66c3de4ac350d6eaf17d1e41fc3133724f","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260426185155.7f1a31e.tgz","fileCount":3076,"integrity":"sha512-oGy5P2PiWJ2fJs1gyio6IoIPhqwfpu0TZgDCfIeEttiquJz2FEay9lPzb6Tr0duF9R+fPuPCjrTgOHSWQui3vw==","signatures":[{"sig":"MEUCIQCfTa/lR8VQaWhlPykjOyOXfyrLzaUs6Qs/QksOTweUzwIgTkq8fIDFFdT2KtcfVZ5aPshaVOZ80LC6u1FQCzTDwHk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260426185155.7f1a31e","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42758055},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"7f1a31e5cf2ea1e24bd05ac0f1f75b9b13bba6ec","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260426185155.7f1a31e_1777229557296_0.5651526787748833","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260426191657.78f74fd":{"name":"remoteclaw","version":"0.6.0-next.20260426191657.78f74fd","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260426191657.78f74fd","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"0ddda79b8c4da676fcbf5b2ddc94f721fd4af8e9","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260426191657.78f74fd.tgz","fileCount":3076,"integrity":"sha512-VsnWc1TlsQktuY0l/gzgHUjTUBrttbQif6k8ydGzHYAZxwN6GUq+rB9hf0WYy3/OXdqMkvDo5MGHZz6tap718Q==","signatures":[{"sig":"MEQCIEI5sa+YfF+ayjqbmSPKKIryBl0Wkc9PeT6IfpWI8bNOAiB5lsEsGpxz18h4Li8Jf4G3q0vd5PnE7pq5Lt8ltszi4w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260426191657.78f74fd","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42758038},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"78f74fd3b648dc6791c0ce228514a9e961658981","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260426191657.78f74fd_1777231056213_0.48418996258817804","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260426194543.8b4d314":{"name":"remoteclaw","version":"0.6.0-next.20260426194543.8b4d314","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260426194543.8b4d314","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"244f029a2e360ead9cb443f01c03d0f5113d7c01","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260426194543.8b4d314.tgz","fileCount":3076,"integrity":"sha512-YkSRrrmzfSL67bQmiYjy523mO0eKk1CMyztEBBiGAdk2/BYfT5uV8f9UxbS+I0WeE2QYF9jw4vypcFF05sGNkg==","signatures":[{"sig":"MEQCIASB6Wld5oMiqLv7jrc7R10sXwvE+9g4o6jbHSMh7WhcAiBohSK+4w2YPQRWMOzzWJceNsrpabuunrdMCGSBVwffRw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260426194543.8b4d314","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42758281},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"8b4d314b0f89d260c99c968304e0ed8c55ef0e91","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260426194543.8b4d314_1777232786163_0.7663605037352823","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260426200251.ebb8a58":{"name":"remoteclaw","version":"0.6.0-next.20260426200251.ebb8a58","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260426200251.ebb8a58","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"acfe8b34e77de7aa3b74485299c426fb0faa1da9","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260426200251.ebb8a58.tgz","fileCount":3076,"integrity":"sha512-b14c35ubHjVbktHqIuW70tLnAghXB9DzfOXC0hQmHm8fwgO8LwzrcLImnclfjAmVDmnobZQHH6CrrV8tr66yAA==","signatures":[{"sig":"MEYCIQDoECh1HFSxzJ8ibhNhlPbWwSrtV1zuGQd0jQ4lzsl2IgIhAOxPm2I2dmTzZe5KqxbKKCFI2swlAZGntjhhMv+kIUXx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260426200251.ebb8a58","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42758051},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"ebb8a58e7bf076584102017daaec9d7fe52904b3","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260426200251.ebb8a58_1777233810764_0.49080763466533583","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260426203036.005e50b":{"name":"remoteclaw","version":"0.6.0-next.20260426203036.005e50b","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260426203036.005e50b","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"8282509d48499f44788b3c39f4f76022ccf0fa37","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260426203036.005e50b.tgz","fileCount":3076,"integrity":"sha512-gWnQTDcz+9aKqvGQz6bVZ3MtyHyVU1K5xRMdO9T/Ut+0TKG9fGk4S2I7ZlXHfushfhFKnzbh47dufWZftnR5VQ==","signatures":[{"sig":"MEUCIFHsi9A7zvbCpDJ+LPdIu2D7hd/uNV9TLOTSpTEyQN2pAiEAwq9k3OLOA6Wa0kFRzrtVmy7jqX5XQzmjQggmj4W6GRI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260426203036.005e50b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42757893},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"005e50b493c4501819392da52f57d182694377db","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260426203036.005e50b_1777235476116_0.992178553865213","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260426210006.14e1a83":{"name":"remoteclaw","version":"0.6.0-next.20260426210006.14e1a83","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260426210006.14e1a83","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"c9146eaf500c140315032675d61c83931f3ab634","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260426210006.14e1a83.tgz","fileCount":3076,"integrity":"sha512-DSD5Ov2L9kHQLpQ7W4funMdEgBCnpz2zjzSYkRh1VQUQrMAlSN7E2W7xVEbwhozpY0CQu414bsukgvxeztuCgg==","signatures":[{"sig":"MEUCIQC+CfP9kMK4GyUwR/lgFUDlrppKg30spuK8b8ExDOOH3AIgXibNbvIkq7Zh8okGQN0yiVw/m3IFNhrWK5EoBzOk40g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260426210006.14e1a83","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42758055},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"14e1a836fa150ffc27598ffc508e53626c5c3776","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260426210006.14e1a83_1777237246828_0.27231504818488683","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260426213513.ab525be":{"name":"remoteclaw","version":"0.6.0-next.20260426213513.ab525be","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260426213513.ab525be","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"0b2a82f75f6bce18f018c1251b8369f5509e13d6","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260426213513.ab525be.tgz","fileCount":3076,"integrity":"sha512-O4PiG9MEtxZIwagBT0yDe7b3SpDv6IV/pIsX8k+uDocdGdwbv1377BsW7aHkQC3MbCv6q394WdA3NZ7u0moCGw==","signatures":[{"sig":"MEYCIQDmPKssliP0jskfeThIP8dYxnJ72ffw8wOO0WsN2mOGMwIhAPvZlAooRaRv3Bw0BFT2tDMGWOz86U6K5wRlL7ZMzzZ5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260426213513.ab525be","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42760882},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"ab525beb53abab4abca32a7a3d87a4d7e39b25e6","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260426213513.ab525be_1777239354168_0.1301744221840997","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260426220416.565f0a5":{"name":"remoteclaw","version":"0.6.0-next.20260426220416.565f0a5","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260426220416.565f0a5","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d10815b633da876be5b9ebd5ac855b7fb0b05582","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260426220416.565f0a5.tgz","fileCount":3082,"integrity":"sha512-IgeGlwGzzIGC5+wiw/fl9nFBQKuqtkAEepkiepZod3H81sdBHFf7WVAMIaTrRrV9bgm24GElzHihLEeirTvTpw==","signatures":[{"sig":"MEYCIQDxMTnjYcIp228JIIZN1Um+9WZ4cLBDdJdNmH7gK3VUyQIhAKcL6xZ3NXBaKW0pCN0ziGgyi2mcbfFP245Ii1agMnjx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260426220416.565f0a5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":43893295},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"565f0a582dd438a0bbd0a6796246ff3bf5ae7d35","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260426220416.565f0a5_1777241095330_0.005295533720788725","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260427062543.e1a4105":{"name":"remoteclaw","version":"0.6.0-next.20260427062543.e1a4105","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260427062543.e1a4105","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"10b4847abce6eb7e0015e6bbf7a4f098328ac47e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260427062543.e1a4105.tgz","fileCount":3076,"integrity":"sha512-iz9d9YZQmbn8LlwGbYD0D8tp+b4BX3mwP6uZYJciStW18sJrWJAOWdCxxz+dGdsGl2bI0EhV+2FtUYMpM0kGZw==","signatures":[{"sig":"MEQCIByfVjfHADEBenHMx5VejrEEcPhu+4qRGoX8xPUrjiifAiAl6zZe/T8aDaBbUo1qLA5YOuIO4z5tvtWjmmj4vUmh9A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260427062543.e1a4105","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42758264},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"e1a41055db1dd83b417db8ae721b9335f1ffcde6","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260427062543.e1a4105_1777271184856_0.9604620084552575","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260427072208.6ac05a5":{"name":"remoteclaw","version":"0.6.0-next.20260427072208.6ac05a5","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260427072208.6ac05a5","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"30ffbf102fd83a3b3098ca072cbf0ef898ed1bd2","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260427072208.6ac05a5.tgz","fileCount":3076,"integrity":"sha512-TZQgfa09/9xXrDf535SH/hOYONh+iNJif9DJzOrKdIuO1x2FRXl6LlLiwU91A0o8m8Pk164x/iJhLGqlnUd8gA==","signatures":[{"sig":"MEQCIBphlP3oMb7T4Qm9BKrdSIlVOmUFXQoPVVQ9umxPRUXbAiBsow5itlNqZt03DkNLUs3Z0WbqnHWfeirpcjaVUY+U/w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260427072208.6ac05a5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42758055},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"6ac05a5386f15490765a4922135ac62ee9b93939","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260427072208.6ac05a5_1777274568049_0.8684819531317503","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260427075322.5d77aae":{"name":"remoteclaw","version":"0.6.0-next.20260427075322.5d77aae","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260427075322.5d77aae","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e554ae29ff7a610964acc815b9f72415415e3fc9","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260427075322.5d77aae.tgz","fileCount":3076,"integrity":"sha512-SOs9fI4/YfGYBI/5pIyxeUdM/SDi/ubb90fOPl/SAoQfL7O9g/vYx0AuL45TRmeLkX8vXr0JGDr+UYkoPP6INw==","signatures":[{"sig":"MEYCIQDbFzx1TK86uxQqCVjos1hYEI/g4uvhLKspaeN12KcBBQIhANlccWmXmIrrmm72HxI+3OGzbVHadk2YPyPJkP+ZRdO5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260427075322.5d77aae","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42758038},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"5d77aae92d4ab8dab30fb46bd8a540e6a2185fe4","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260427075322.5d77aae_1777276441195_0.3542539894843626","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260427083844.474ae48":{"name":"remoteclaw","version":"0.6.0-next.20260427083844.474ae48","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260427083844.474ae48","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"64054436986207512e8b296b50af8fbb5d639f3d","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260427083844.474ae48.tgz","fileCount":3082,"integrity":"sha512-Qyl97QJP/Etxy07/2rnMvEdjAl+dWYToWH81RhXv4ETZZtkWnhECDuRWVIaRBzCPca0RicdZpKprMTfhP94J3A==","signatures":[{"sig":"MEQCICUsBRa+KzwM70XWRi2ckm6a5LMbfuWTzhmR/tDuIDwUAiB4rtJsj3kksGsRFJ1ls3Lvr2iYPF/laXMv6KlAAdPwyQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260427083844.474ae48","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":43938733},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"474ae483785e4207a92eb404e29f43e339a3042e","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260427083844.474ae48_1777279165712_0.17373895135344686","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260427091808.fbbc33c":{"name":"remoteclaw","version":"0.6.0-next.20260427091808.fbbc33c","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260427091808.fbbc33c","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"01531fa5ac1aa5c438110af1f174ab5f6f58ef43","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260427091808.fbbc33c.tgz","fileCount":3076,"integrity":"sha512-qUJg2WIiWmAMCqU2mGg3AsjHSLbVshw/yLCq9mq/jIwIqK8DIbSq0yMr40iCLCjIZKGCJJPwcBDfRWxkrbqURQ==","signatures":[{"sig":"MEYCIQDep5Y9MgXanFWlkDq1KVl+kRyDWCHUUWgE0aCEsIC25QIhAIPoe02h0QGCw7kppzkLApVq6Be2o3Tgba5k5cA0AQRe","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260427091808.fbbc33c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42803246},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"fbbc33c7e5fd4e43a7f63dda7eb965ca662dc47e","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260427091808.fbbc33c_1777281527436_0.060031593534434435","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-next.20260427095510.008dda2":{"name":"remoteclaw","version":"0.6.0-next.20260427095510.008dda2","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0-next.20260427095510.008dda2","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f311add2f6638742826080bdca77510fe31768ca","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0-next.20260427095510.008dda2.tgz","fileCount":3082,"integrity":"sha512-KNIfT31KgbNOVzp2jaGns+/zBxBdTh7SbRx64l08PoBv9+xTJA6TxEOIhiKZbXlqKEVFqt6eSNetiWJa0PLhvw==","signatures":[{"sig":"MEQCIH3sBToRngVnO6D0knibp0bQJd8tqWz45LMSRS7xwyRlAiB7PBgroumfcOoBvlz5ONzCkqu7oqGZQIu/5dxAQIPFUQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0-next.20260427095510.008dda2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":43938362},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"008dda28da9a3d8bbe477c9daf2079d630993033","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0-next.20260427095510.008dda2_1777283750270_0.17858789592635982","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"remoteclaw","version":"0.6.0","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.6.0","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"8f7ae405e720b4fe1acebde4d080d83f73dbb008","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.6.0.tgz","fileCount":3076,"integrity":"sha512-r88WMQzHyPGLZEGZNLSvaXYVrahzbW16jc0+4WgI6xghKoq2DjG2zhS1QhbBl8tWH6AU6TPHcLPbfjlM4SeRmA==","signatures":[{"sig":"MEQCIF8jtOlteOoAJzg1DcnJkuWaUKMWLWgYPTG9kcprA2o5AiB5LIJksrQeMOazBl+82y0lDTSNT6jwVQgktrHow5wouw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42802529},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"008dda28da9a3d8bbe477c9daf2079d630993033","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.6.0_1777292023440_0.9486164470322411","host":"s3://npm-registry-packages-npm-production"}},"0.7.0-next.20260427125855.65dc83f":{"name":"remoteclaw","version":"0.7.0-next.20260427125855.65dc83f","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.7.0-next.20260427125855.65dc83f","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"9a70c4f3a7d12fdf826ad0c80ffc62fe694e7ce9","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.7.0-next.20260427125855.65dc83f.tgz","fileCount":3076,"integrity":"sha512-YDoz1+LN3W67wy6YYh4btS64AZs9Eitnp9DJhC0BoBW8lPCg6D02SjKK6kf7FjxxGF9TUSrg+ublHJ6larmS0A==","signatures":[{"sig":"MEYCIQDq3eD7oC3gg1lagztMpDXhn2mQMSapVaHeMRmiaz7tQQIhANR+kdNQhOvwrJ5ZO0lDfz879GE3uzWKBoeiWaLezXT7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.7.0-next.20260427125855.65dc83f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42803233},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"65dc83fbfd63cef05e1dbb116e576a96b11eb171","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.7.0-next.20260427125855.65dc83f_1777294773981_0.36395742315985635","host":"s3://npm-registry-packages-npm-production"}},"0.7.0-next.20260427131422.a4effc7":{"name":"remoteclaw","version":"0.7.0-next.20260427131422.a4effc7","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.7.0-next.20260427131422.a4effc7","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d95b2f4a3a9fb0c22b75a280a4cfd44ba08725f8","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.7.0-next.20260427131422.a4effc7.tgz","fileCount":3076,"integrity":"sha512-ZPurtdVXwTL1VB311vd9W1D/qMIhHMbbReiPN673Ir7YbKpi6it0mBbwAeEd34MIsEu+TwXnU5255DXooDE0ag==","signatures":[{"sig":"MEUCIGYFcfrezhQuhTp0RY9K12WpSI1kpl7lhA3oru7OOwMVAiEA+TCwBJ8Q1x95mPyKUZAoZmlMCgUd/GooMBaCKy7SHN0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.7.0-next.20260427131422.a4effc7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42803229},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"a4effc75469b84c175adf1f20b6a2733c13442d6","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.7.0-next.20260427131422.a4effc7_1777295702810_0.3475046653600202","host":"s3://npm-registry-packages-npm-production"}},"0.7.0-next.20260427144000.59270b0":{"name":"remoteclaw","version":"0.7.0-next.20260427144000.59270b0","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.7.0-next.20260427144000.59270b0","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"4c80fd3c428c8aff20c1b1210ef556961d3b202b","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.7.0-next.20260427144000.59270b0.tgz","fileCount":3076,"integrity":"sha512-fhAgOTPoJn5QSl5pw/N3S+hsTpvo8aBnjEhmKpweF3+2/nYwLO8cD78vCJ/bt+rkzp8uWhXtrnreymtsav5UCA==","signatures":[{"sig":"MEYCIQCF4yBe68+hq1u0EMcIHKPs4iQIFwaPxQfAllgFwBstoAIhANup1Ds5a6MoJyTfyCERJuTuDRmoSBnygKUzrnHGbqZe","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.7.0-next.20260427144000.59270b0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42803250},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"59270b035d91a5f3a034946f74fd5f8373ef2370","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.7.0-next.20260427144000.59270b0_1777300843117_0.22522331572822019","host":"s3://npm-registry-packages-npm-production"}},"0.7.0-next.20260427154209.04ff316":{"name":"remoteclaw","version":"0.7.0-next.20260427154209.04ff316","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.7.0-next.20260427154209.04ff316","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"836451e5207cf4cab348378853af8135c2af09ae","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.7.0-next.20260427154209.04ff316.tgz","fileCount":3082,"integrity":"sha512-hW3wEBkatCTUvahTErXZY199ivUYNJzA3StHvEB8WN5MHCpAakosIDXkXF06qQ94natX8M5Vs9Hab7ccaZmK3Q==","signatures":[{"sig":"MEYCIQD9L9nIj2/c8ZaNcXR0dK5YhEn+XPjWt6gnrYlVKxM4ywIhAM6FMEU87JxRf7I49pz2CZ1Nx0tDyNY9Rnfqm6Q5LhlR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.7.0-next.20260427154209.04ff316","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":43938507},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"04ff316e5b3461982690c4e8a240a2606d70d491","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.7.0-next.20260427154209.04ff316_1777304572675_0.4954453190326715","host":"s3://npm-registry-packages-npm-production"}},"0.7.0-next.20260427181416.1d8ee33":{"name":"remoteclaw","version":"0.7.0-next.20260427181416.1d8ee33","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.7.0-next.20260427181416.1d8ee33","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"6dd6da52a1645d3ee4dd23c08f03a6ba27737dd8","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.7.0-next.20260427181416.1d8ee33.tgz","fileCount":3076,"integrity":"sha512-WKAnnFaVcW/pNcF35moJHc1C1ZiyKhNW5Ze9KjUrWFlb+AaeivfeOh5i0JkRsQ3qROMh3GVSbgcwJmi5FOuuDA==","signatures":[{"sig":"MEQCICOmbU+H4noh0xvO6roolzOKMSZOVBT5Uz4sghN+ikDTAiBFY36/leWLmMImDD0u1RHFnb1i4JRfWqE9LdRPJhL7FA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.7.0-next.20260427181416.1d8ee33","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42871355},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"1d8ee33075ec1e0a0a64f31a84194c5eb4b1b4ec","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.7.0-next.20260427181416.1d8ee33_1777313697319_0.853393678880352","host":"s3://npm-registry-packages-npm-production"}},"0.7.0-next.20260427182129.491935c":{"name":"remoteclaw","version":"0.7.0-next.20260427182129.491935c","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.7.0-next.20260427182129.491935c","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"484a0e53c48ba5c5c4fb2721b710f26612996fd2","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.7.0-next.20260427182129.491935c.tgz","fileCount":3082,"integrity":"sha512-0IuTS1xz14AnATBJR+8wT16hnWers1qq3TWXSdRpTdcfDajUpT+dnqo5rLfi1PQ+hyMfmIvfRA6PsNgi663aGQ==","signatures":[{"sig":"MEYCIQCTi+7CbFRwbKC0unyrnr4PMB+kTuyxC69tBWB2QKLVQAIhAMprdHRJ1pTQ92BtdPvsfV0VTfCtcH8OqdZUZtGdfF8e","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.7.0-next.20260427182129.491935c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":44008498},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"491935c4384fabf076b6247868da6db7ee9cee97","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.23","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.7.0-next.20260427182129.491935c_1777314131927_0.5010710895739081","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"remoteclaw","version":"0.7.0","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.7.0","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"75a7ea3e4b5a4a8928177b19617078c7a8b8e716","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.7.0.tgz","fileCount":3076,"integrity":"sha512-MteABNeg8VAK0NVQGQpz3IwcorVVbbgGjR3exBrciLumdCwO+o0nwj/ihp8wkM/B5q2p2UlUoPAquF9isqC2gw==","signatures":[{"sig":"MEUCIQDnDo5Fj98z1dq/dbPsuJtv9Lmjqpoq8XEsM5trU9ya3gIgAZzghqNLc3sofdrRKPhdxxMT0aDg+F5YoQxurJHjykY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42868173},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"491935c4384fabf076b6247868da6db7ee9cee97","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.23","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.7.0_1777357963774_0.9480808198096757","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260428064649.0540cd9":{"name":"remoteclaw","version":"0.8.0-next.20260428064649.0540cd9","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260428064649.0540cd9","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"6a25a1cb3acb21ae2b815e939700fb06006240f6","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260428064649.0540cd9.tgz","fileCount":3076,"integrity":"sha512-QE33DvSBEw95zgr1AiM0Ppd4ysqjnwX7shrMSqpBr/EK1s/gq94/rnyU8MMagOYH+9BtARapRfZaeyA06Ue1rQ==","signatures":[{"sig":"MEUCIEx4QKLDMKVuyvmFK643g5Jwgewv/w2n1DXwaMW1BoWIAiEAuyZSeV0KuAdlqD8QR8bgMrv/E1MAgzavvhJxUSWatsc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260428064649.0540cd9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42868613},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"0540cd9fcc7a48382f0de3179f27ace8ea6ad207","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.23","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260428064649.0540cd9_1777358849062_0.6830560918374227","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260428160150.5700f62":{"name":"remoteclaw","version":"0.8.0-next.20260428160150.5700f62","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260428160150.5700f62","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"a51ce5dfb2239ec2d9d46b7503218ff787307a89","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260428160150.5700f62.tgz","fileCount":3037,"integrity":"sha512-4ZlLbhD/Jva7GT6OJ79zyvaK+GRRyVR1eOrqPCNZ9ykytUBIoGWMliiGx2BysC3M2Rq8uTTYK25XF2a5w6FySQ==","signatures":[{"sig":"MEQCIEBQMhKcmndXcvV4gpG/9vfdEP1XsmMpUGvZe0HXAjBKAiAMyD3gNCMZxG/42/ALUzkop0hHn3NH4cz3PEtFGyMQ/A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260428160150.5700f62","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48620249},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"5700f6271320e5c354087cb56713e0f398712792","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.24","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260428160150.5700f62_1777392153351_0.6981883871567802","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260428164207.ed94d7f":{"name":"remoteclaw","version":"0.8.0-next.20260428164207.ed94d7f","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260428164207.ed94d7f","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"b774f1633f395ee450c908d0640d7628d95a164e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260428164207.ed94d7f.tgz","fileCount":3037,"integrity":"sha512-U1XzN+g/0zcybxEfIjtAdJhqofWOaoOWTPDlV41dyE+dMYug44nlDHyeypN8ZRPT5tNzgsUQQ03HgRmoziRwSw==","signatures":[{"sig":"MEUCIQC+CBti5lxj9GuUGDeNogzLl8wo7+oeTJU8LA2VzyRhkgIgPfbYpK7V9lej9cGYzefMFVdSDW/uONOh2rWFQ1JEr2Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260428164207.ed94d7f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48620249},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"ed94d7fb570db6663179e5547b895bc1571d8a2b","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.24","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260428164207.ed94d7f_1777394570777_0.31495266851147363","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260429101127.25b0651":{"name":"remoteclaw","version":"0.8.0-next.20260429101127.25b0651","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260429101127.25b0651","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"293ca516426e494632e6b69adf2187e50356dd7f","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260429101127.25b0651.tgz","fileCount":3037,"integrity":"sha512-oAZvi8N2zI3iUVwqgdJROqpkA6WF7JZYM/HfsObgVUYT2KrA+Rh8hsXhgKyAaXR96FwJtcW2uSOhz7KN3/Z2hw==","signatures":[{"sig":"MEUCIHYavOPQs2KSncGxTXkmkgL8A/jafqUyEzUpDSrvigStAiEAykG0kL1qlcfXXGtM9TXE0Gqcl52ksYOnleNiDrw2Bw8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260429101127.25b0651","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48621768},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"25b0651dae76b353bc85aa4d6418918098ade408","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.24","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260429101127.25b0651_1777457529648_0.4431617766685878","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260429102424.fefb61d":{"name":"remoteclaw","version":"0.8.0-next.20260429102424.fefb61d","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260429102424.fefb61d","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"ef22a411c534738c6be186c98c6475097c74c4b9","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260429102424.fefb61d.tgz","fileCount":3037,"integrity":"sha512-+HtB3tsd4VidcUs2tC5orjd6T+ta5cG0Fd/VmbVMsO+g9E2xHI4bBRAoCCO69KGAmUAw38B8zSdKZx2yRqY92Q==","signatures":[{"sig":"MEQCICi8a8xJY+QHjsaDrHixHltVxheqRQkstUP1ofqwsOBjAiAz282Dd4r46WBkdW7uvE8aaIM3PTg7Dtg3FgNfVMdroA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260429102424.fefb61d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48630266},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"fefb61d7fbdca6d412ae04c45c76416796cd975f","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.24","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260429102424.fefb61d_1777458306566_0.7828794763783595","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260429125353.898155c":{"name":"remoteclaw","version":"0.8.0-next.20260429125353.898155c","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260429125353.898155c","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"4f06d11c693a8af254900e4dec52efac789a7c01","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260429125353.898155c.tgz","fileCount":3037,"integrity":"sha512-NVAKb8QvYtob3rvO3vR2iFwSj0uVMwdI8LYTVyxjcgTO7OfLH2b3UVa/WcqqYHR2VyRqSfIGmDxAy9X1BLP9Rg==","signatures":[{"sig":"MEUCIQC6WCxdcffhIrOC5vIUsxD/4v2OcCrXYdXlGxwWYfch9gIgQfijP4otugdXGx99IcC6YuHMld++SVNoHxiXQ0WBXgc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260429125353.898155c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48630102},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"898155ca5471f393167c9facbe8a9bdc1248d26e","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.24","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260429125353.898155c_1777467274776_0.8510535534979595","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260430092236.2a37248":{"name":"remoteclaw","version":"0.8.0-next.20260430092236.2a37248","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260430092236.2a37248","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"8134a46710711ebb7ad0d6c51c2c32e181c5e3b3","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260430092236.2a37248.tgz","fileCount":3089,"integrity":"sha512-KTC2zvoYT+NFCvvlhE4ERt161Z62yqjcZZFF7bZKZT4SQdH97xbhZAN/aZ81hXrNEAc+SJPRLeACw9m5XnG2qQ==","signatures":[{"sig":"MEUCIQDRlRSG37P0T1ltrrZMLuAjDsU1zNJoOmlMQx/AS5v7NAIgO3lyx269N8nr1K+bvibcndXy+gIT9pvb0xiMmxauzS4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260430092236.2a37248","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":43251824},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"2a37248269aa6bfaad19f7fd36eee0490d6de3f2","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.24","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260430092236.2a37248_1777540994908_0.3550001070333113","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260430093017.06ab4e9":{"name":"remoteclaw","version":"0.8.0-next.20260430093017.06ab4e9","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260430093017.06ab4e9","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"fef0a87b899fad7b5612697cb7e3b26b47ae3a4d","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260430093017.06ab4e9.tgz","fileCount":3089,"integrity":"sha512-65iftcLHrZ10hoL+uZo0mttBn+MGW5b31vXYcIlcZtKrSmrtErcCf3MxTAIFiS8eN1foO+szEQkmrrQqZ+B7bw==","signatures":[{"sig":"MEUCIC6ECFiFwlSZ2Qom4JReL5ygWsWNS9NDNLzbFzFCCkdHAiEAxgVmfd7D19XEG281e4k1im0anyNNyD10Ik3O2TKlP24=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260430093017.06ab4e9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":43251824},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"06ab4e97d1693a53237bc13dd190d4076a0793f1","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.28","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260430093017.06ab4e9_1777541457077_0.7824348755267863","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260430110442.c35edf6":{"name":"remoteclaw","version":"0.8.0-next.20260430110442.c35edf6","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260430110442.c35edf6","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"042be2905c4d62cd553612c5314790b334790027","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260430110442.c35edf6.tgz","fileCount":3089,"integrity":"sha512-Of6dgJdxZZNCtl4mk4huoQbfD6y8KyujhYVBkM8NaWhWrQxJivqJk+AdSUNbvLX21NmgahcPppgOx2rlvaoQ0w==","signatures":[{"sig":"MEYCIQC28NrRhSYhN2bae5FVSfjNRmWc5/CqdUNNaU1c9ftapgIhAK56ZCO2ANR044BuIETapsIauKIMZFva9/fsprkvGWLm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260430110442.c35edf6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":43251807},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"c35edf6f6b8993453fe3df4fbb8a74e427ff53ca","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.28","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260430110442.c35edf6_1777547121335_0.5293248262015058","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260430111156.d87f595":{"name":"remoteclaw","version":"0.8.0-next.20260430111156.d87f595","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260430111156.d87f595","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"ac439daab62cae9ff68279fd05ce1261e041a211","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260430111156.d87f595.tgz","fileCount":3089,"integrity":"sha512-HyR8ompIkREdnJ55WBj8+XnaypevQypgoFLW2Bb7Prar0XFt3PHKmx/XgGJdV2/H6yVMxJjlKQcopHHt7LvUcQ==","signatures":[{"sig":"MEQCIF6F3Sww6V3nlJ5pyXoYqqTU4nE9w2lJKzfrv/hLsA8BAiApM8LlwTTgMozLMfE7nqsVe0GixDBvVpYdg0yBcvUniA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260430111156.d87f595","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":43312241},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"d87f5950866cec3ae65b3856de55fec3197c364b","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.28","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260430111156.d87f595_1777547556084_0.02315419708731281","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260430115357.a57dc2f":{"name":"remoteclaw","version":"0.8.0-next.20260430115357.a57dc2f","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260430115357.a57dc2f","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"a0b20728081ca020bf1839d80aaa9ca3141d6597","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260430115357.a57dc2f.tgz","fileCount":3090,"integrity":"sha512-vE9RPPPjsjyhrB6Ze8FgGSye7Qh8MDKTG0tQPPLzWKyuHCa1LKIUbhOHoZ5TxBgi8JXjz3W5qhGRNNIhP+onfQ==","signatures":[{"sig":"MEUCIQC3PVFLtC/7aadLa/QEevXLKereNdP5sNcHmAbXRes7DgIgYB5eTdn5jS0j/lrFAXT5t2MFzJw/GpA4Rq9mJySNgjM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260430115357.a57dc2f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":43315413},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"a57dc2f025b2eaca64a27d8f25a89fb5f4742005","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.28","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260430115357.a57dc2f_1777550075936_0.12051509721680898","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260430120050.2228b8d":{"name":"remoteclaw","version":"0.8.0-next.20260430120050.2228b8d","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260430120050.2228b8d","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"a7f700acbaa2c22648adf85965ecc7d4e85850c2","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260430120050.2228b8d.tgz","fileCount":3090,"integrity":"sha512-kDdpg67QSFjh3gw22tTZxQuhaGUrTeadRbnOOKLl8AAdHwHaSk2O/8XipFJQILNkBd5LVDjSqAyLLQEoePCgxA==","signatures":[{"sig":"MEUCIQDua+ygXdSlKpwjVxx69P1j0L+pcSbKMYZFpJ8FzRP15wIgRdJI6LR5Ci7ohFavxCU46OaPsrzIAWG51JAsGFRxywo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260430120050.2228b8d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":43316086},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"2228b8d836afb0f13d07327e04b5b9a3dcba616a","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.28","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260430120050.2228b8d_1777550488124_0.6252416662934699","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260430151051.05f8ef0":{"name":"remoteclaw","version":"0.8.0-next.20260430151051.05f8ef0","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260430151051.05f8ef0","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"9f381c690c3e5ff131bab3516742e27e0d29353c","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260430151051.05f8ef0.tgz","fileCount":3091,"integrity":"sha512-qWX72THkcD9QE97WPN2UmL9LB9RS6P9F0FtYH2bmgu5eKmtmo3ok+EVi8dTF7X2VU43Ngkui7e9GSF9YKwQLfw==","signatures":[{"sig":"MEQCIBTM5Hv5omxpGwDZ60p2P8zBgV3lg6ZyaUl3i52Ej1RLAiBW2BAbT8ec6/G3bAgJWNoq0xUqdLDTk1qJC7CSCluyJw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260430151051.05f8ef0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":43328278},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"05f8ef03b6e79726372a66a5f3a0d08ad57ec34a","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.28","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260430151051.05f8ef0_1777561891970_0.7296489207372818","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260430151757.ea4196e":{"name":"remoteclaw","version":"0.8.0-next.20260430151757.ea4196e","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260430151757.ea4196e","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"a76d0e4ca974c1ace13938945ef815d55f9668e8","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260430151757.ea4196e.tgz","fileCount":3091,"integrity":"sha512-kn6O9vepQjZUDnLb7IYQYVYB6Bo7viARs0xUDUgEmtgoUXJiH1NOlBSESSb1XzxKGEOxcG9uWI6kGj/o27awYg==","signatures":[{"sig":"MEQCICcyyHyCSHGUX2A2aN+dU6BleceoDCcfv1kwArYP6MH1AiBquw3SzUXD5Qa1v2DuZ8SxvwOWX6Yy5A5v9Rdtd8WCHg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260430151757.ea4196e","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":43346377},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"ea4196e0597e654efd438d308c5be2547371b7f2","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.28","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260430151757.ea4196e_1777562316736_0.07087777961280994","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260501092722.2553067":{"name":"remoteclaw","version":"0.8.0-next.20260501092722.2553067","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260501092722.2553067","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"b05af95ae2154daed12b8538bbfd29005857d5da","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260501092722.2553067.tgz","fileCount":3091,"integrity":"sha512-KZnji3MelZJ7FaqKxDX+zJL1dvVSVfBlozy/H5XbR44NyYiysgPR6ktfo8albugUAcK44rDa4FA5u9xmlMeh4w==","signatures":[{"sig":"MEUCIQCv//k50fbag9oNy7zY3JvlDfry4BYtN4ajcFC6srCrZAIgTWjSBCyM/huqbFQqyAuBpGNvbFUw9tI5wRBTJ25Rm8E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260501092722.2553067","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":43349940},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"2553067a90fe3baeaa633f6462d872e2ada3b6a1","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.28","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260501092722.2553067_1777627683952_0.3472273909289636","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260501101319.9faac55":{"name":"remoteclaw","version":"0.8.0-next.20260501101319.9faac55","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260501101319.9faac55","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f5fdc607307fddac5d1888a987dfa440b2649303","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260501101319.9faac55.tgz","fileCount":3091,"integrity":"sha512-qkow8VrsKKH2WpoAxz4qr3z0wba6VvdCaQY8lJWfGolUThmbiWVqcAzUGV/KPvjOEKG8e/hRh7qy7rGxWbAKCg==","signatures":[{"sig":"MEUCIQCUnDVuZt18H7S05BcXZnj0iPAD9Z+zC7/aZJzBpfj//QIgLAg66miDHA/318ZbFwwZqtGLDCpMlgqRaREA3We4szg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260501101319.9faac55","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":43369114},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"9faac5556165f621738d29124e9a8007045e2a8d","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.28","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260501101319.9faac55_1777630438095_0.21375766720926115","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260501191940.6b0d6d8":{"name":"remoteclaw","version":"0.8.0-next.20260501191940.6b0d6d8","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260501191940.6b0d6d8","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f9984920917504923f7bf21ebd2beda924b3a933","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260501191940.6b0d6d8.tgz","fileCount":3099,"integrity":"sha512-TIk+UKwMY98maxnBO2k16MtSdIDj4q+PU09xVkWWVtqZthjeZw/QhDKBRXZK9hOqyxwTFpifjP1OBKBjgnH8ug==","signatures":[{"sig":"MEQCIGwjk3gWHVoyilqPDWQ6TM7y03BrXbkesvuU3WQzIUT+AiBVCC8egq4kH4isyoYL2S9nhnS4XjmdqYr+o6M3YyiLaQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260501191940.6b0d6d8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":43600301},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"6b0d6d85b955e2a80fdc72b517c7f05f2451e97a","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.28","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260501191940.6b0d6d8_1777663222304_0.7004327043872132","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260501192719.72ad251":{"name":"remoteclaw","version":"0.8.0-next.20260501192719.72ad251","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260501192719.72ad251","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"6c3b0a72544202db8c83dc8deafc69571cad4fa8","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260501192719.72ad251.tgz","fileCount":3099,"integrity":"sha512-2VP/cxG50cc+hNhZjjrrxWEodVw5yIWzE2qLtyXIPyDiuvnIjhkRUQdPglB9sXlGoM8pmZBam+DOEg+ctdX2pg==","signatures":[{"sig":"MEYCIQDUIo9iTN8otoGl/VJeEBr8cvMNJpuuU1xBQngqZuQllwIhAPwUQTTggU0c6l6KPrF7F5bNsc0R6KduAgFu23y21Iqd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260501192719.72ad251","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":43600466},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"72ad251fa48255f37b0effccead3bc54a382e89c","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.31","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260501192719.72ad251_1777663678801_0.9628259027828829","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260501193518.1b72b76":{"name":"remoteclaw","version":"0.8.0-next.20260501193518.1b72b76","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260501193518.1b72b76","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e903aed9d716152ede9a4efa47ef4dc76c34c06b","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260501193518.1b72b76.tgz","fileCount":3099,"integrity":"sha512-Zv7dMawSARLYZ9E/N4/X2uxg21ri+yrnn3WGbquSBMOWMBsQX+iU+YIjoSXPPd4UFcf5oJMenbwoR5P66xg/rg==","signatures":[{"sig":"MEQCIE4eJx0SR+wo3qe5iqDq58XnRrx93s6fYGdYAUM2JxNCAiAWAXkeM/p2sPvRmQbv+Z7L8REKMvB+XWuxNRr8rTZtHQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260501193518.1b72b76","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":43600466},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"1b72b76ad5e9fd7c5ed8a9b4a0b612a11ec606e0","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.31","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260501193518.1b72b76_1777664156422_0.28855473333706594","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260501200932.8144ec2":{"name":"remoteclaw","version":"0.8.0-next.20260501200932.8144ec2","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260501200932.8144ec2","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d4c5d93db665e7a131f743a73107fabd2f61a527","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260501200932.8144ec2.tgz","fileCount":3099,"integrity":"sha512-yyO039OoQ9EtEQstiDIwzLAxcdScilqg6mY5Qw8uSMgiI0533yhUlFgl9j1WlRVC01JMlCLfNQ6jsGjzAcQ2fQ==","signatures":[{"sig":"MEYCIQD7xI6VhUhoVcjk1keHnt0dnv74Vx8JUcCkJ7+4FNR1kwIhAJsGI0iYXyNpeZXd9DYZ/AnZmEsKctMdYTJ6wSx3QqJP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260501200932.8144ec2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":43600514},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"8144ec2153c634da4c2bb43272eddb9903d98668","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.31","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260501200932.8144ec2_1777666217820_0.26473090464220594","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260501213950.69e8925":{"name":"remoteclaw","version":"0.8.0-next.20260501213950.69e8925","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260501213950.69e8925","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"882ad749890e7cd80ea734162d84e8c7a264e5e5","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260501213950.69e8925.tgz","fileCount":3099,"integrity":"sha512-62MjIbAjWnSI2LBL28+SYa6ekK4R5TA4KgRJjbxcngjTLxndrdMeQmto3DRv6PrdWzBrsFmbi+hP/BIp2mZjUg==","signatures":[{"sig":"MEYCIQCKXaeK25OU8S5cv8ymcERuOe2ketN93SETgQzoz7mYpQIhAOzaCnwvDs13JjxDLuzR1Uq2jXQ7d7Bh+uD3wfd707St","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260501213950.69e8925","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":43606605},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"69e8925962655c8cf67a77bc1ee2697254215a65","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.31","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260501213950.69e8925_1777671630275_0.26060697628270035","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260512221713.477212d":{"name":"remoteclaw","version":"0.8.0-next.20260512221713.477212d","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260512221713.477212d","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"85cd25b19ae574cf5c27f5297de3566be244f2a2","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260512221713.477212d.tgz","fileCount":3111,"integrity":"sha512-qgxJZLBnacCAUbRQWbwaRApkxQ5NJcy9kfDRe+PO1A4cMXd2u+xS5ETjvjW15+fm0ivpKew4kR3helv+IwJuBQ==","signatures":[{"sig":"MEQCIHngpngRPl5x4f06MT7meMZ6/QjKEYJFKVJGW7BGx8CBAiBBiblX7iGm8bgXUt8hgE60k2mM9JvjZXAuMxgVGxtRTw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260512221713.477212d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":43646269},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"477212d3426b69dff55743e80df28c829624ed44","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.31","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260512221713.477212d_1778624274015_0.9133481510742845","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260513153418.d6633bd":{"name":"remoteclaw","version":"0.8.0-next.20260513153418.d6633bd","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260513153418.d6633bd","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"56f4b55dd4c62726c89a4389a04ac5188c08e895","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260513153418.d6633bd.tgz","fileCount":3111,"integrity":"sha512-bbLZii95lUA/OG3UmwxXuztijQuU/oYQLfwHzDaghmKG67fwsYxi9qH8PQYQTzFfwgw484R/Q/aSeBbTQUoMsQ==","signatures":[{"sig":"MEYCIQDUrHDXzKYbHflrskOS9qXJAGuHmu2B9ZT05IPSLyzyYgIhANfqs+IRZnhjUdZHVA7OLBx/gQhDuhG5GjWY4Kn+xTQy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260513153418.d6633bd","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":43646434},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"d6633bdb1f822549ffd44caeffe3b58558063589","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.31","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260513153418.d6633bd_1778686499625_0.6566475013119719","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260513154123.b7a6f28":{"name":"remoteclaw","version":"0.8.0-next.20260513154123.b7a6f28","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260513154123.b7a6f28","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"b9881a0498c35de578ef1a159fb0f22d81b76849","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260513154123.b7a6f28.tgz","fileCount":3111,"integrity":"sha512-Ta/osyRkSwkRDOtI+AVFCjTonc8+ydmOzOx5l/nJTMvYOzTTWaI9QeTFHW7g/Whr3l0QHgNWqYQjKVPcxv1T/Q==","signatures":[{"sig":"MEUCIENgj1nVX1qGEBnBBlhMrJeC06NLtBE0SIOw2SbLwmP1AiEA9rIVGXrk33SJFKfymMGKC8jveMXI4xY1Vxj4EPZXRdk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260513154123.b7a6f28","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":43648964},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"b7a6f284117e0bc7d071a0d8f75817a99b5bf4ad","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.31","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260513154123.b7a6f28_1778686924937_0.13740383605474715","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260513162550.0f07f92":{"name":"remoteclaw","version":"0.8.0-next.20260513162550.0f07f92","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260513162550.0f07f92","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"7614d5c251da6a007da647568161a501cdc163dc","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260513162550.0f07f92.tgz","fileCount":3111,"integrity":"sha512-eiNK/Wqygyxf8i46krKUzroVHx8R/44uT1AFeZoytdzvjVEtXJhujVQcOaV4b9Qdwxrg9nVEBy9dbCxvu3vm9Q==","signatures":[{"sig":"MEQCIBQdW1Vnlj75n1YsPXQIZeZ1S1l1WdmeuhdZD7Dj+mCQAiALz8U6uKdeNojQCAygJgQIkgILrdGcJjJvuShnUtDGCw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260513162550.0f07f92","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":43649070},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"0f07f923f47c44fca06b6d2e8986e4b09ea982ee","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.31","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260513162550.0f07f92_1778689593395_0.4954486218867935","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260514012644.12fa327":{"name":"remoteclaw","version":"0.8.0-next.20260514012644.12fa327","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260514012644.12fa327","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"2d03e859131822023ad7ba60ef1f4a1d20e1e084","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260514012644.12fa327.tgz","fileCount":3278,"integrity":"sha512-eWvbKc8yT6+RrzGTMwYEPbyIH5SEEyF1cU+jWJoQe2Pgl0aKJFV75CyL2Hfix8W8zWInUq+HA4pCDtYCy0xgzA==","signatures":[{"sig":"MEQCICKBpiuq5f8y31lQlcReINWwyTCwBWJAwF1pdJO3wcRKAiBbVHpNOYTjbS9vvlfs2t2bG07Nxg22kY2zVnZvSY8ZMQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260514012644.12fa327","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":45783449},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"12fa327c3055c4e6ae4239692d3a4bf97d86f605","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.3.31","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260514012644.12fa327_1778722046178_0.13696758207720894","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260514020440.06a0345":{"name":"remoteclaw","version":"0.8.0-next.20260514020440.06a0345","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260514020440.06a0345","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"ed645d7a9192ce16dab3c39749be180c4e531145","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260514020440.06a0345.tgz","fileCount":3278,"integrity":"sha512-9qNivuif2WZntblagYdP1r0NwdkyICpJkFqJgXooJqhN55fWb0DO849HXrk97P2CXZs+4YschHB+5Q/yS95DeA==","signatures":[{"sig":"MEQCIGPOfgv+VqRfFmfU0wKbRf34tBap3R2zgSyD88THt4ihAiBhsnIRlCm4jAYqmM8gEYBq/SI8pNNtsDjrWkf6Bru3vA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260514020440.06a0345","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":45786395},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"06a034576b57818f14af219af3cb5be8ac8586b3","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.4.5","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260514020440.06a0345_1778724324682_0.25972015860168707","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260516005955.7b18ea1":{"name":"remoteclaw","version":"0.8.0-next.20260516005955.7b18ea1","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260516005955.7b18ea1","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"77a48ea9e234e6a6221891d9a472ccfd0fb6fb66","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260516005955.7b18ea1.tgz","fileCount":3336,"integrity":"sha512-gaAaw+GGRIvw0Fn6OgTS7bghCo9AqPctngI94T5NMT1evfPWXIdstMVQgQNwjyKMzn/kNPueAPaxTjVITo6zcA==","signatures":[{"sig":"MEUCIQCqL9ifzEFqigLmzEhqcPXebWUlNhPbBmRMvetE79nMRQIgWn8pFir+fgG+qNUYDuN0FLAosYgXRsd3UCr2cSeJiws=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260516005955.7b18ea1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":47049786},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"7b18ea1c225187ea45df9c0a1121b3b8d9bef83e","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.4.5","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260516005955.7b18ea1_1778893237542_0.23454811469086767","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260516010815.1b8b569":{"name":"remoteclaw","version":"0.8.0-next.20260516010815.1b8b569","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260516010815.1b8b569","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"27f5137b658f604b47deff37381676841cbfa8c7","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260516010815.1b8b569.tgz","fileCount":3336,"integrity":"sha512-kRq2z+ch8upVlc4uoVj606CGTjDXCw/HRJGlRf2IOncWZW6qJNXyEis+G2ulErk6UGJokwlmLG0MNJ2wP65sHQ==","signatures":[{"sig":"MEUCIHE3UQYcYm73AqR0HugWdSDutrRWsxYycM2x3Vg7oR80AiEAyo/XBTO8UZAZ0bLfUpI059itH6C9sbytvuz+WgnuoI8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260516010815.1b8b569","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":47049788},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"1b8b569ec04e6d434b0bfa1f263efb99a686cb9d","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.4.7-1","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260516010815.1b8b569_1778893737714_0.6764505855873506","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260517063950.6c6b8c2":{"name":"remoteclaw","version":"0.8.0-next.20260517063950.6c6b8c2","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260517063950.6c6b8c2","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"6199c93103232b854feb83fd52b4c8d69d9a2953","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260517063950.6c6b8c2.tgz","fileCount":3365,"integrity":"sha512-4FH200b123oMkKIE/kl6ki430livG9G0Uewv/lALMMlnQssIQLh4ts1Z5+V9AxQ6gOGf+DA2fMmouxSNCAUAxw==","signatures":[{"sig":"MEUCIQCsGscSf1aUtuTK7/OLB/NRHn931Tdzezu6kdrwoDtulgIgDDfz6QIPyz5V4nzoiS+Pws+wF3iLORQQ3iya2cHatl0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260517063950.6c6b8c2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":47466593},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"6c6b8c24c67752f22b91b7833f5d46a06de7f35f","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.4.10","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260517063950.6c6b8c2_1779000032683_0.19114934299864195","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260517113318.faeda18":{"name":"remoteclaw","version":"0.8.0-next.20260517113318.faeda18","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260517113318.faeda18","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"6d1b1968a1643b685efce6688889d875ce04a62e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260517113318.faeda18.tgz","fileCount":3365,"integrity":"sha512-nur4ub8OGDoDi6vApfhP4tZbdBlawvaft6trx0NnFfXgnD8PdqGNZAvk60FCgNgLr10SJch3k43KG+vMUfj/mA==","signatures":[{"sig":"MEUCIQClSwc55GPk5eRUk8Q8PVndq5FlweCj+aA7XiXUbRhw0QIgYuEkNJmVaYEascUqWYSLltFg4lINziC7rn9M3azDXYw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260517113318.faeda18","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":47469726},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"faeda1844d41bb8e7cab2d40bb339a3054778e0c","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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.24.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"},"upstreamVersion":"2026.4.10","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260517113318.faeda18_1779017643703_0.5327712948374683","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260517114349.3c200fe":{"name":"remoteclaw","version":"0.8.0-next.20260517114349.3c200fe","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260517114349.3c200fe","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"bdc7db12de14ad2660bb237e698350244871b7a7","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260517114349.3c200fe.tgz","fileCount":3365,"integrity":"sha512-DOf8qZzo38YpY8a3ShjAoEShWOxk9zam0g3WUrfsp8LlhGd7NGLrWgKOTyvHwEuK79pKsTk3xkljIHImWbHCGA==","signatures":[{"sig":"MEUCIQDUVVH3uF8BtagAfk4JtA/uRma4s+s3IBxwpAmRrziT6wIgaS0rn3CQ7y6bDG3rzfXB9CHXl5Pi/WKg/+4EA5UUVII=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260517114349.3c200fe","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":47466725},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"3c200feef7e1a9497df25e67e5d0a594832af432","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.12.1","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","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.24.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"},"upstreamVersion":"2026.4.10","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260517114349.3c200fe_1779018270666_0.29268028030649385","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260601113131.26cd3f6":{"name":"remoteclaw","version":"0.8.0-next.20260601113131.26cd3f6","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260601113131.26cd3f6","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"845f5d40c249e7521fdfcd2362401f665419f9fa","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260601113131.26cd3f6.tgz","fileCount":3379,"integrity":"sha512-KdB46zS/f4gFPR5cilXRrgzySONQ3sTSQp6C7+3AOaCobyb511OXowkIkO5dLfErK8zcuIwh4YHGLXuyF4GKKw==","signatures":[{"sig":"MEUCIBSH2nk3NYLsAlxu+iOgh15SnVfNI1He2temQRiM5I3aAiEAnmZf1pwIaQh+d3l2nv1IVFJ0d9dHfjVXZ9J3jRWJKFQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260601113131.26cd3f6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":47593995},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"26cd3f69c4e59033cedb27a3e9fec10a13387655","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.13.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","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.24.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"},"upstreamVersion":"2026.4.12","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260601113131.26cd3f6_1780313532595_0.36155244345735116","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260601173216.d202b54":{"name":"remoteclaw","version":"0.8.0-next.20260601173216.d202b54","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260601173216.d202b54","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"068dc86e05d9e47fc6f72571728f3f9bc69ce06e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260601173216.d202b54.tgz","fileCount":3379,"integrity":"sha512-i2pxGOBJ+AtdivUU0D+IxtqOuuapgjrATkxU8W5KPdIc8nHpMSzhlt4eSv3ctuYvE4uFj6eRwJ3Ygd413nsXFg==","signatures":[{"sig":"MEUCIFa9oE3tgn2Nn9bXL22pRJAbTLdByv+jp4V5FLtWiEl9AiEAzyEtiXgKEXkf2vLCtluRR6qHT2xV9Yp9GNdfFHYwjws=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260601173216.d202b54","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":47593995},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"d202b54711c08ea3e9b6d3b559bc34ceb3c1bbf4","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.13.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","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.24.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"},"upstreamVersion":"2026.4.12","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260601173216.d202b54_1780335179361_0.9716687514586344","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260602140056.f5aa883":{"name":"remoteclaw","version":"0.8.0-next.20260602140056.f5aa883","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260602140056.f5aa883","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"386a5bc692b8917c5a6d12e45e09142239f42d21","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260602140056.f5aa883.tgz","fileCount":3379,"integrity":"sha512-pzyDO6WH7wmBcgXlH0ZaPzmRI60Xh+2/wvv23vtQcgQZIcymi4z0Yh7nD5aL3cbTha9WWsScDcywvoI9kjhv1A==","signatures":[{"sig":"MEUCIDhGAG5tw8w/iRbv61qvyw6+0XgyvRNQ2sfJdtpZ/cddAiEAuaVe9xf3xSTSYsU+qkaAdye33UCP7UAo+3l1Id5VkUQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260602140056.f5aa883","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":47593995},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"f5aa883efd0db76728c0e79c5489b782231e8182","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.13.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","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.24.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"},"upstreamVersion":"2026.4.12","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260602140056.f5aa883_1780408899660_0.7405077213970916","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260602150737.b87a5de":{"name":"remoteclaw","version":"0.8.0-next.20260602150737.b87a5de","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260602150737.b87a5de","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"6c4f72fe8dffd9b819424f1c3a3ee7c6035772ab","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260602150737.b87a5de.tgz","fileCount":3379,"integrity":"sha512-QV7zQT+2Xqfvt3LdeUBwZpOP2pLqNsX5pBtjPHj2C+6MZQIHPbaxBqnKcXmjhF4MoRHtxe49OOlEkyKLEtFt9g==","signatures":[{"sig":"MEUCIQCjZI4LKIHF0UFzKH8AmwmacniTQOwv1yobUIR0AFdUaAIgIkejjajkB4TInoPMCK8LoZYwQBQIk8pExenFarnSdTU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260602150737.b87a5de","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":47593886},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"b87a5de975a84e8a5614dab572801383ed9d9bfb","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.13.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","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.24.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"},"upstreamVersion":"2026.4.12","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260602150737.b87a5de_1780412900120_0.4441537762923904","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260603101202.7419541":{"name":"remoteclaw","version":"0.8.0-next.20260603101202.7419541","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260603101202.7419541","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"afc5d38cf0d1ff2fd5feb609ded7b1e08c484e72","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260603101202.7419541.tgz","fileCount":3379,"integrity":"sha512-iO9TRPWDNfMYdDouYcEP3WEnpJFjbB54QyodyQtdbCJWkT8JlPAUVNJWbAHjHJ7y0ys2pFHxw0lzxVYH3Jssmg==","signatures":[{"sig":"MEUCIC+6E7i1Msx5BC1dCGtWsqIrVFOjNZyyBGIUKvdBPnHyAiEAy/7c5mTlHUPNi6GIn2W9JmHfYawDNIZeZysgZrQT4dU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260603101202.7419541","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":47607880},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"741954187727ef10548af195a1b8fc46860b3466","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.13.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","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.24.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"},"upstreamVersion":"2026.4.12","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260603101202.7419541_1780481561228_0.9238773559123483","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260604050227.1b1d58e":{"name":"remoteclaw","version":"0.8.0-next.20260604050227.1b1d58e","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260604050227.1b1d58e","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"6dbf8da8904c2f2272540e827748683e59a3dae6","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260604050227.1b1d58e.tgz","fileCount":3379,"integrity":"sha512-tJ2txEJR0vp1W+RNFWaoG27IFBHOwszZJvi/IPX17K7hlvMVdHhAoKU3syFLLj7pO9uB52JR5yP6DAlOjVyjsA==","signatures":[{"sig":"MEUCIQCSfSfvz5tTvCo7OJDpFyCkw/855uW4Ki1eVunUcedUUAIgLC5aH9n0Md+syqKRv81asHX8XptINyLyWOdVT+EJzpI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260604050227.1b1d58e","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":47628045},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"1b1d58e516f70a51754607faa427f5d8149570a4","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.13.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","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.24.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"},"upstreamVersion":"2026.4.12","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260604050227.1b1d58e_1780549389697_0.800688216870062","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260605064740.ed9ed40":{"name":"remoteclaw","version":"0.8.0-next.20260605064740.ed9ed40","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260605064740.ed9ed40","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"fcbab2199a1c1671ce3c7eb870a5d082a1f00a38","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260605064740.ed9ed40.tgz","fileCount":3418,"integrity":"sha512-CkNJKkSdUdOUoJ166z3zKJGLpUDkXrYd74pjmIWVHWwvCiD01II0HTpSfn0Dbz6iP5RAJc7IZXsLerfvMPSLbg==","signatures":[{"sig":"MEQCIA+3DxTTSY/aba1MI6FusnP5MtVGG2P0+2JakVasalZiAiAFfNykJ17SEJNiLpQorpc194t4oDepSaibv+YuqCziLA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260605064740.ed9ed40","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48283203},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"ed9ed40b0d2b1919455e6f03e42fb2b39b1012b6","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.13.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.4","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.15","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260605064740.ed9ed40_1780642100696_0.3306113260487642","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260606052320.2581c69":{"name":"remoteclaw","version":"0.8.0-next.20260606052320.2581c69","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260606052320.2581c69","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"5ae030c46d2fd104446ee68a407813d064d1cef0","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260606052320.2581c69.tgz","fileCount":3418,"integrity":"sha512-SbokFNDQU9Sb33OFjsqM6cxPN5ZV1VwtQmol70lem7ex9COTJZbjkL2NIcV4gDCoPYTN1bmd3ClIVIZc5jfZAg==","signatures":[{"sig":"MEQCIFg/iTTGGslhEAtwT8DYUwgYXksZwaMXyXMQB+Mw727QAiAplemp1cmWb/PWOt0pkYBOTRgEh2pqa0GqLlwM1AKTIg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260606052320.2581c69","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48283056},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"2581c6908df7c822517a5ddbf7728b1fbb2b6ce2","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.13.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.4","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.15","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260606052320.2581c69_1780723442004_0.6623232863819777","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260613230544.0e4a4bb":{"name":"remoteclaw","version":"0.8.0-next.20260613230544.0e4a4bb","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260613230544.0e4a4bb","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"46c7c044ab5c12f8ec71b522206978013eed1b77","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260613230544.0e4a4bb.tgz","fileCount":3406,"integrity":"sha512-NDotV+2qFU1O9tKYcAzGOcGpoghkyAwE9TNYrA1+uLkHnm3Jpq+Dn1k1AZZYDhH+Ex0N/qmf13nvUsqc6HP9hQ==","signatures":[{"sig":"MEUCIQDXIdCjP5FqR38nGJQlXaz/pZV72Ho5bJAtv56OtjqhDgIgeBW1CkkLuAlvFw6NAOkFZ3GmrdErFg6YmIYKUUjMo8s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260613230544.0e4a4bb","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48275205},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"0e4a4bbd012a09e3b1abc9548064d6f57a3d7c4c","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.13.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.4","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.15","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260613230544.0e4a4bb_1781391986168_0.2522863350406974","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260615063216.0bde17b":{"name":"remoteclaw","version":"0.8.0-next.20260615063216.0bde17b","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260615063216.0bde17b","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"3932532fe4935b617766b2f05d035c9839ee3eb9","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260615063216.0bde17b.tgz","fileCount":3438,"integrity":"sha512-n6mxSAniWUcriPCLGtfVBl1vIRcjBElmQdl/xywE8o116St53bMF7b22Hzw9nKByqP0rfktiN972tTS4yvfBjA==","signatures":[{"sig":"MEUCIFXy7yZSyR6mpOGGqC8fD1W+iuWggv7eIXWQkptAV+8LAiEAxWzT2nFuaJHnqZylLk7xFGG2//U3R27Soo101wVbt/U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260615063216.0bde17b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48635917},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"0bde17b9010df759d5e93a48a5d6277e71178966","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.13.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.4","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.15","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260615063216.0bde17b_1781505176152_0.7519748715372263","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260615072325.29f8ff9":{"name":"remoteclaw","version":"0.8.0-next.20260615072325.29f8ff9","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260615072325.29f8ff9","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"0b55a5e111fe4a3c5740b4d613b4cbc0f3d90f34","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260615072325.29f8ff9.tgz","fileCount":3438,"integrity":"sha512-C9oooX5102Uocru6EXymyOpoYWaBft8NT9CGkVQXf9A5Qg0sDL98kZxn5hgc50oTIhVe8Q0WBi7Lo8zkdTQX7Q==","signatures":[{"sig":"MEUCIQC/MJjZhxqKnq+YTUT8IGllI+6KwXAcVgpH4iYlfjijmwIgNS9NfORdv7azifWW4k76GICkdA/NMS/ad7HQsvT9pmM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260615072325.29f8ff9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48635917},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"29f8ff9e62077cf43c50788144e44f8a731f0ac8","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.13.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.4","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.20","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260615072325.29f8ff9_1781508246801_0.2188058346541395","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260615091222.ec14511":{"name":"remoteclaw","version":"0.8.0-next.20260615091222.ec14511","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260615091222.ec14511","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"db1e5a9c6f3a0572d4be4c95c81189dcbd558541","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260615091222.ec14511.tgz","fileCount":3438,"integrity":"sha512-xWAnT7TdTPi0C/qKnxFDXM7AF7IB2z54b7GzQlrAkHSoIJiVCP8uqhrmouWzHkz0vNF3+nx6MAKz/AY4TgwRfw==","signatures":[{"sig":"MEUCIQCwXYGRCj4og1U+PFUtcE2hUA+LxLLNA8QHff+8J5PG4QIgf3PF9oud+pydh9UXkzWhWVAS92p5pOamXC6esNaCILo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260615091222.ec14511","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48638739},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"ec145111b69eadc9e05800da727d305a5213fc6b","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.13.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.4","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.20","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260615091222.ec14511_1781514785301_0.8407707357197951","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260615094650.2cc295e":{"name":"remoteclaw","version":"0.8.0-next.20260615094650.2cc295e","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260615094650.2cc295e","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d0123b05b1cb832c77c16a260a685e7fd6dcc259","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260615094650.2cc295e.tgz","fileCount":3438,"integrity":"sha512-FgU9zNff4jNct/8R2mOvxga0nLKlX5bPuNlp4SAWgQ8sd5EvZ/Z9yf0YeE81IV/+Pb2VyGyRiz5C0lXVY9uleQ==","signatures":[{"sig":"MEUCIFpdlfi/cLPLd1kjBL1Iw+W2x3X/MSeUegLZXW7fw5znAiEA5EXUwygIyPpIThasmJDMd4pWdycw5/EzpxI3aTB2yC0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260615094650.2cc295e","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48641088},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"2cc295e15805f75eaa6c00b983d56e6607e3e8c0","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.13.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.4","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.20","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260615094650.2cc295e_1781516852429_0.26615529869235655","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260615100642.4b7a9a2":{"name":"remoteclaw","version":"0.8.0-next.20260615100642.4b7a9a2","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260615100642.4b7a9a2","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"486f9493939394b62d1d40986cc8d19455a2e8f0","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260615100642.4b7a9a2.tgz","fileCount":3438,"integrity":"sha512-C6dOYbXfP00dpkkLupBw1I0o1yMxm6FrHAllRNuqAkY4fCuVEt67l+w/UshYHavZhiem//hNiBdX4j+Su0ingA==","signatures":[{"sig":"MEUCID+UrNtwcO3oHp4ARr8VbMuXceadpTHJaAEvoyTraHU4AiEA0ITt8YXaw3vqwPbBRc7dMPLg4UyBws5VxblIIZRtLGE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260615100642.4b7a9a2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48641071},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"4b7a9a271f9260a2f46cad379881da9852c8b401","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.13.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.4","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.20","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260615100642.4b7a9a2_1781518042827_0.7600461862996151","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260615103525.023cbdd":{"name":"remoteclaw","version":"0.8.0-next.20260615103525.023cbdd","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260615103525.023cbdd","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"b59bb7253cd829f5c61db6958ab35d132475081b","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260615103525.023cbdd.tgz","fileCount":3438,"integrity":"sha512-2NS69y0EFuXBazDaEap8vnixJZWeu87Xm7zlFu3Qu096aVmGhjTcgndlDr0gwpeICPxDPI3CFJCAUB7PaThRKg==","signatures":[{"sig":"MEYCIQCZSWmqq+rmARBrTamXzhYQOZelCjR4ZXmgHtlc6O6iWwIhAP9sZOMlf41TQiSOVjnzpDBAX7oNofGHSvSSfLZVMJun","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260615103525.023cbdd","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48645181},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"023cbdd688760ee90d9832f3dff09fd2be8b5958","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.13.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.4","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.20","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260615103525.023cbdd_1781519766010_0.6403280329547574","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260615111459.867df32":{"name":"remoteclaw","version":"0.8.0-next.20260615111459.867df32","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260615111459.867df32","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"1e9dc51b7a36f04c426ac74a9e2a02c6325c10aa","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260615111459.867df32.tgz","fileCount":3438,"integrity":"sha512-wYllmwLsQ3MY+h5Wu/8NgacM2oa1fQxhAJInSC5rXlZrkOEnZEQ0N8aNIo5wxLrH0lBTReHLilUMXOdrGyLzsw==","signatures":[{"sig":"MEUCIQDYPEuXq5JY6K7/Q8DlX0PFZQBHpkcLWcqB0CjbgH1mtQIgJmjCxIraz2yKCkoF77c4ga157ydUavX32CPiG9HkG3k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260615111459.867df32","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48645198},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"867df3281eca8052f276fe6b656dc21b04674403","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.13.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.4","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.20","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260615111459.867df32_1781522141577_0.5574792249742835","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260615113544.0e34e72":{"name":"remoteclaw","version":"0.8.0-next.20260615113544.0e34e72","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260615113544.0e34e72","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"7d4b2d66d98520f82b77351449993a06f3f796ee","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260615113544.0e34e72.tgz","fileCount":3438,"integrity":"sha512-+fWK6LmNYbKGzFFySLlDcBKoJZsOIaYFXC7wCX/OLmwkwgTkTyP1lHy/jSmVcR5EN8LeZOEGISEQgSsxNjVeJw==","signatures":[{"sig":"MEUCIQCg/D4vETplkaDiHIUnMuIQ+hxftqzRqfo4jJ83odTuYgIgbsxswxrLKh1cPBBtLRrUMFrIWmNl9YcjIr5uFzuxcRM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260615113544.0e34e72","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48645181},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"0e34e7221dbeaf52eba4d896076ccacbe3855d26","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.13.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.4","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.20","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260615113544.0e34e72_1781523386208_0.9934321736034826","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260615130200.46fddc7":{"name":"remoteclaw","version":"0.8.0-next.20260615130200.46fddc7","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260615130200.46fddc7","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"366d9f57e451ef3a98c86a0a713a1d8b32bcf4e3","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260615130200.46fddc7.tgz","fileCount":3438,"integrity":"sha512-hEqySk9dLl5/XDYdWQ4jbGMd3yv2xnxeRVLez1mP0xvWaZpQcF2wD5Br0eG6VfXpIO+/D4Zzy6o2R0orTDD7XA==","signatures":[{"sig":"MEYCIQDCF/7DFSuwvk6CCvBrqnRBCamDASgHtBC5LhV/5+X+VwIhAJ1Ft+sYQBrRrIS+c8BDQH5VPMmyGm4cg5DCQIAhCWZI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260615130200.46fddc7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48645181},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"46fddc7050b08b55d16545d4a3046ae32cf12368","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.13.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.4","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.20","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260615130200.46fddc7_1781528565093_0.9979543247635909","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260615141853.113742b":{"name":"remoteclaw","version":"0.8.0-next.20260615141853.113742b","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260615141853.113742b","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"7cbb96a054b7c91f3cef19a3d690685c935f8dc0","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260615141853.113742b.tgz","fileCount":3438,"integrity":"sha512-0SkebaXClN2dooO6x7P7U7oZUoZrNJEvMJa44mnhuwYBwO6F9sWQ35E9gN7ao5BcMGmYGEcgkjalB7jNSq19/A==","signatures":[{"sig":"MEUCIG3EJ/w0WiNcUJuo6qWhaD+kTxxGYzgJcsemaLsFZg+oAiEA7CM4G3MrsbOWMJtjeVbGMUvVtLIrTSSiH4Y77DSU2aM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260615141853.113742b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48646257},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"113742b3c70d789c40ad9f1fd7cd8c2e47a86021","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.13.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.4","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.20","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260615141853.113742b_1781533162227_0.10929840077588882","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260615142735.59ce1b7":{"name":"remoteclaw","version":"0.8.0-next.20260615142735.59ce1b7","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260615142735.59ce1b7","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"965ad4252011843ca777f69d78b117cd46fed94a","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260615142735.59ce1b7.tgz","fileCount":3438,"integrity":"sha512-MtzNpI2zJhfqzSRC6xxY6QyHJ/7N9QBPTWMrzcsRqvAPnx10cpEp71fEtcTn3xd9yVm/jHOx340h7A5SMOBfSg==","signatures":[{"sig":"MEQCIDpGas2truSUPsUUoF5bxFi+vJSlVfLMS4Ufr3zYdVNKAiAU4S4yj3D1WmdZb2KMM97H88JpCpUDcxNgNuZ8kEgn5A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260615142735.59ce1b7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48647054},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"59ce1b793c6c336e70f95babe958ad6c2fcb24ef","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.13.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.4","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.20","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260615142735.59ce1b7_1781533696728_0.3317589154246072","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260616234137.1b2dfb3":{"name":"remoteclaw","version":"0.8.0-next.20260616234137.1b2dfb3","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260616234137.1b2dfb3","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"475b0aa5612d9727416ed127f13c53c2eab17c63","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260616234137.1b2dfb3.tgz","fileCount":3440,"integrity":"sha512-ifaqKEw3FaqvipTZfZQDGsLvAmimJpAJ9QmVJQqr8Usi2jEv5N2VQRoMpuV8YkUPezMH1Ir3YFanJeSKTGJemg==","signatures":[{"sig":"MEYCIQCO+Ft2lJf0Qt7eDL0UpvUW4EefCMLaesvx4Mivy14HMwIhAOh+VhAjkYPUaRE4l/nRcnHzhpYDZnDuSCceYQhKa0F7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260616234137.1b2dfb3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48705358},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"1b2dfb3a521a04c4a028db608fa66d1456365664","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.13.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.4","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.20","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260616234137.1b2dfb3_1781653340562_0.12950769382094118","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260617150654.f7cf650":{"name":"remoteclaw","version":"0.8.0-next.20260617150654.f7cf650","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260617150654.f7cf650","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"829e1caa2c0669ec7e79ab648e99132e737d4068","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260617150654.f7cf650.tgz","fileCount":3440,"integrity":"sha512-MgoOh3yT+t8JBkDsLqlD2gIIIopeyjrnL/K5DJDPdMWGOYkwAbL8ZbRmCAdy9KHLIZX0E8gsmOR0eXu28HbGNw==","signatures":[{"sig":"MEQCIH4w/IssPebzf3+OLDRudit/Jp76cnZn4xuh+E6SYIwpAiBZCkjl/addGZkWmKQl3zlYhB/EW61r+/sdC4oCOHQ8yg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260617150654.f7cf650","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48705041},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"f7cf650f8efab04958488178838f1dcf3167fa69","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.13.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.4","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.20","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260617150654.f7cf650_1781708857133_0.9391840219362855","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260617153439.8c1aa92":{"name":"remoteclaw","version":"0.8.0-next.20260617153439.8c1aa92","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260617153439.8c1aa92","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"175f10bc90ce3d09ebc7133efd921510e4487536","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260617153439.8c1aa92.tgz","fileCount":3440,"integrity":"sha512-6W1AfNC+Ft+K9gf4xjqLjYtLD8WUnzD/ufyT1YoRW7tKmexCHuHr33l7RT3TBFwtcf1oGYqTHlzkeJ1fSZ4FgQ==","signatures":[{"sig":"MEUCIAJbkFAe4cQ5fQiAU38piElx29DJEh6noHKouTiOvJwGAiEA0d/uquOKKIrbYP3OPWmw+LDmCZZhFu4vipFPXbYcy0I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260617153439.8c1aa92","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48704688},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"8c1aa924957ec4926c05d9556248b956ce55aba8","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.13.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.4","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.20","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260617153439.8c1aa92_1781710520099_0.7558148460277527","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260617193845.026da9b":{"name":"remoteclaw","version":"0.8.0-next.20260617193845.026da9b","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260617193845.026da9b","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"8099164dbb90b760fefd4986c1a70da00477ebef","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260617193845.026da9b.tgz","fileCount":3440,"integrity":"sha512-EuEHXmffrWk5skbTZqPLI69s86Y8PyJr1Je0F4WE4CBL17OA9mFZXJ5NLsV2qz0WsNmX5FZxyBG9esyP+09y9g==","signatures":[{"sig":"MEUCIHa9copTrT/RW6IcVuXr2f/glMdZbClgmq+rqicCK8dFAiEA9yxqdUJ+n1fVKK751Ahbxcam56Ijsgd7YM/cixLbvMc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260617193845.026da9b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48707612},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"026da9b81f7715c525548983958fc50c8643cda5","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.13.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.4","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.20","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260617193845.026da9b_1781725167942_0.7397541267030121","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260618081237.adb7264":{"name":"remoteclaw","version":"0.8.0-next.20260618081237.adb7264","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260618081237.adb7264","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f3ec4347b6de47a7eb11f810f346c3b627060a6c","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260618081237.adb7264.tgz","fileCount":3440,"integrity":"sha512-wv2fI0+Soc0BYkMp7Y4girfXQLeVIjhd0UVY3p3sP17yrlMxuauMjngdkc9NBJgIsvXzMP+HSm4T7ik4/RO/yg==","signatures":[{"sig":"MEUCIEj7weMKtFFp2NyXZ6yS+ExAKfMtioHu8J01aQ+HbsQcAiEAm5eyCjWdc+2bgDOJChStAUsEF7Mm7jnNtuRdbHtx5oA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260618081237.adb7264","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48711189},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"adb7264ae8a9b46cc34d8c360e46a8b8bcc3fd43","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.13.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.4","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.20","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260618081237.adb7264_1781770398215_0.3829203666850778","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260618084754.aa198e4":{"name":"remoteclaw","version":"0.8.0-next.20260618084754.aa198e4","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260618084754.aa198e4","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"0c23afaedf31dd66c524bdd5be198a3c353aa0c1","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260618084754.aa198e4.tgz","fileCount":3440,"integrity":"sha512-6/6q5oca7PAIRDR+FI86WnQ4o0B0EhBL2Sc2FZS3aIl/q8CQ0IM712+h+4jkqHggT7V7BV09J3amSYpzxhcbhg==","signatures":[{"sig":"MEYCIQDapIDR7WXaQc7Zkcdx6cYoutNTYfh0zxCxQ0fpf0opIQIhAOEOx5Aq7kbj8ksnAFLW2d7hJPz062rI1tupTMHOzTpQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260618084754.aa198e4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48713657},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"aa198e446cecdd8d5a4a8617071ca7aad965eaf7","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.13.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.4","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.20","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260618084754.aa198e4_1781772516388_0.04015830753063443","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260618093455.f762046":{"name":"remoteclaw","version":"0.8.0-next.20260618093455.f762046","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260618093455.f762046","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"5800a9df0258ef98dbeed34bb4ded0887e70534a","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260618093455.f762046.tgz","fileCount":3440,"integrity":"sha512-eDpA0d4mqABaXZ0DXHZmwEShLMlNVkNbk88+R9jbvV0Ix3Xfc4iqLb5rOJqw78ZLyWC+8YO4aAur8MZVXptc3g==","signatures":[{"sig":"MEUCIQDzh2ycpDbtqd6tofLmW8b32QPjqODPSqJpQJzsCDaBBgIgSAUWPb1A0oC6tG67DYt/94BfKXzmmiRDGpdOgo2FKEE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260618093455.f762046","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48717726},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"f7620461453079317f5f230026552f6a495c3e64","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.13.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.4","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.20","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260618093455.f762046_1781775338063_0.3056785383335294","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260618103429.286d23b":{"name":"remoteclaw","version":"0.8.0-next.20260618103429.286d23b","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260618103429.286d23b","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"ccdb6bc56ef8c9c990b9203dbdc2de2653765ad9","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260618103429.286d23b.tgz","fileCount":3440,"integrity":"sha512-qHaavuECoMkE3vaBsqcc4kErfuG7ut/pdbaTi6PEZ9auBqJjAJSRTNIEojxmyGnHKBf+urd2/ebw4T75tqHX8A==","signatures":[{"sig":"MEUCIQCP40h1/MzhsrPbWuTfBtT8DzofoqvaEkIKCRx2A+ROLQIgLotA+cxmgkL5W4HVWtcpoP0f48dyzlRH3J21T8UV+m8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260618103429.286d23b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48717580},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"286d23b85f52e7aca89363fd6e7e6bc0e28e3aae","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.13.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.4","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.20","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260618103429.286d23b_1781778911925_0.6827663455149482","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260618104652.029cf6a":{"name":"remoteclaw","version":"0.8.0-next.20260618104652.029cf6a","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260618104652.029cf6a","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"69ce0599521301ecf4f48df9bdc965925659ca7e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260618104652.029cf6a.tgz","fileCount":3440,"integrity":"sha512-dqRd+1KIjaiUSbAv8jLxTCyDhqydAkkInP0M98fNB8R6PrVaoFsirziCUgWIxRns43gImJV/b3fJqPshPCXFoQ==","signatures":[{"sig":"MEUCIErR/ksczNQCSldDYK4JZs51MBa9IopjtsRlPFv2pKHpAiEAgNk2nPquUoo2ciboIIuCPYREK9RjQKHufwolQXIHycc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260618104652.029cf6a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48717580},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"029cf6a70174a5f9e959b0446f47738948fc3882","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.13.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.4","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.20","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260618104652.029cf6a_1781779654882_0.4066429117328265","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260618105436.55f9992":{"name":"remoteclaw","version":"0.8.0-next.20260618105436.55f9992","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260618105436.55f9992","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"ed51edeb0e18d04a532943878ba3eced9584de00","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260618105436.55f9992.tgz","fileCount":3440,"integrity":"sha512-mM01tvmmKY/4B2NxOmyuJfEoXfdImQAlomh3ENbj3u3hyhQFgCn+qTwSAlpD3nnie+pdKBm5USfQw8aTK8MNJQ==","signatures":[{"sig":"MEUCIQCza10+TV6bodlma2gjTwTUlPpxIrQmSgEci6Eq/HsckAIgNRmk0BKToXCaYMXOYiZvJgk3c5D4CggdWGOdBOBZXJ4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260618105436.55f9992","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48725074},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"55f999231c2fdfdbafae6c721be41f172befff31","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.13.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.4","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.20","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260618105436.55f9992_1781780118505_0.7511009537607849","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260618110235.bfe2c09":{"name":"remoteclaw","version":"0.8.0-next.20260618110235.bfe2c09","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260618110235.bfe2c09","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"54e087146ea23e3d76762fe9be8b21821c65c6ff","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260618110235.bfe2c09.tgz","fileCount":3440,"integrity":"sha512-GYezTHu85sMY7+atbvH9gzQqnf9iPSSJQPf3F6JdroLvhxoxPEGr2lduMBq+8ZMZPR3zYPR9JlXfzNPQ9amWWQ==","signatures":[{"sig":"MEUCIQCj6H955YwM1+oCxKX7b58vsk4uvnTOc55NfNDTLirhUgIgC+VkRDQZgr74nSufNAefMHkbiwts3xGbVpW8VTa1lwQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260618110235.bfe2c09","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48725264},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"bfe2c09c478bc90005d5fc0b0e2e5b5ff0b07b8d","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.13.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.4","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.20","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260618110235.bfe2c09_1781780598660_0.06407651077332654","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260618120925.9fe2c73":{"name":"remoteclaw","version":"0.8.0-next.20260618120925.9fe2c73","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260618120925.9fe2c73","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"94851649e97b22793f2ccc639d8ef43fcc89b6cc","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260618120925.9fe2c73.tgz","fileCount":3440,"integrity":"sha512-cHttbsB9LnBR8hPdeOaZQlp4elRKKB6fT/Ep5skHfKbdAt3qz4yZzf443N8bkQOe4gnTTOqXSsoLRkbxAAxWCw==","signatures":[{"sig":"MEYCIQDU/Hkmjto4FscrARs5VANY2d947J0SzhkHioufPvZbMgIhAPVwzVJ4JF7iSKABxPax9FeY/2jXO6Qbc1FR0RYmwduZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260618120925.9fe2c73","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48725124},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"9fe2c7386f0251d675d9f0af63537146d91b2a0f","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.13.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.4","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.20","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260618120925.9fe2c73_1781784606647_0.5510855571300954","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260618121649.71258cf":{"name":"remoteclaw","version":"0.8.0-next.20260618121649.71258cf","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260618121649.71258cf","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"06afd152a95dc4fe9bbd9904d8503a37eddb08c7","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260618121649.71258cf.tgz","fileCount":3440,"integrity":"sha512-O06P0QSmT5mA6o13PC8/mXB3yKaOcB578v08GzY+mDoMtf/7RNLukVw39Vx7bYFjHVWcImvJ0sCJRAJT/dj3Ag==","signatures":[{"sig":"MEYCIQCljlH3ecrTIah7dR3MSQ0UOeFEWjQ7Hr8sRgDwLXmPtAIhALheTUTpw5HX97l5gTue7MqkAjhVHHhHchW96hSjv6EN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260618121649.71258cf","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48725272},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"71258cfdbd6d9375fcfa6932dd0cdc47518dc52f","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.13.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.4","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.20","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260618121649.71258cf_1781785043780_0.4856518108862251","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260618123057.f2f86a3":{"name":"remoteclaw","version":"0.8.0-next.20260618123057.f2f86a3","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260618123057.f2f86a3","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"7792dd580ce9afea232f5a259f027731d01a6d51","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260618123057.f2f86a3.tgz","fileCount":3440,"integrity":"sha512-+6DqhHYCmcb9cYIOL1ASd0bdneHgu/ajxnw0pWp+kHuPBLDyBlCoUno7oQdMXQqlqb0D1GxJFKJTXk1bp0+kUQ==","signatures":[{"sig":"MEYCIQCiE03/Q5IDBzyFdj2W9CZBJ2/3G8KfbSmKuMvgHgHAqwIhAJcKvKx+shTgac6c/NdK/CS02zRwvibMg42ALGGdMjkS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260618123057.f2f86a3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48738318},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"f2f86a3e29e734de5f38531eddaafa2f445655ad","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.13.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.4","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.20","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260618123057.f2f86a3_1781785899242_0.47178107816320325","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260618142440.6e34bdc":{"name":"remoteclaw","version":"0.8.0-next.20260618142440.6e34bdc","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260618142440.6e34bdc","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"256778f4966da98a18e5328a45f7641f5f8954a2","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260618142440.6e34bdc.tgz","fileCount":3440,"integrity":"sha512-EYuC38/8lcNrPY2Kwvq2aJ6QiJNsOJaVvva8mR4nBfdqfpNN4YRzuUazvSpeGTH0ISwTbXaOXe77EcRDPc9DWg==","signatures":[{"sig":"MEQCICJ6GqO6ebFckfpgmVdCATm/d/gsV0saEDVSmhioh+4PAiADKze7xfV9Wwf83Xe4I4StwxddM6p6Yd0s2cdhG4VCgg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260618142440.6e34bdc","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48744773},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"6e34bdc86f766dc7bbcde59e8e704b5263dde040","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.13.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.4","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.20","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260618142440.6e34bdc_1781792713381_0.1010852355814913","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260618150447.dcd8baf":{"name":"remoteclaw","version":"0.8.0-next.20260618150447.dcd8baf","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260618150447.dcd8baf","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"79ff11e54c67c85faaf42f46b07681764ad7c1b9","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260618150447.dcd8baf.tgz","fileCount":3440,"integrity":"sha512-RZtkeQ370OLSgOAdakCyxC3bDLS1Oid6DTnzUGyne8iuJU+AmeitOW3IhR/IYHXOINQ2Cb2yxpz2e0krY0le+g==","signatures":[{"sig":"MEUCIQDhVFMXREcXbpES4ATwlEFgAiaiomyuhzNZStjfDW/diAIgEMUa4HOr1ps8hK1vnOzL09LnihjbEAED1PJmex9BvIw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260618150447.dcd8baf","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48747011},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"dcd8baf814da28eadc9ffad45da96488fa1c7b15","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.13.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.4","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.20","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260618150447.dcd8baf_1781795142515_0.5526602415187467","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260618153926.26697e0":{"name":"remoteclaw","version":"0.8.0-next.20260618153926.26697e0","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260618153926.26697e0","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"464b7ed217e6de48194f64c7d694b93854d2b350","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260618153926.26697e0.tgz","fileCount":3440,"integrity":"sha512-dhq40kA1aC8sLiJ5T4Vt/pKAdM5IH4dwWLiA4A+lbgYisYrPWeK2OzoYdKLeu9Q2BhUj6c4DKMeWNw1UJ987Wg==","signatures":[{"sig":"MEQCIHDAHLqW52rbIEHMvT3t2Gi953OfWYJY/YSoGoH8RYUzAiB36qYt7W2YPZ/aP9Gmv+4fq1i1KgDpfHO3ccvkEiN9pQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260618153926.26697e0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48760026},"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.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","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"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"26697e054633ca090463e8a991ccf8a5be60792f","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.13.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","zca-js":"2.1.1","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.4","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.20","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260618153926.26697e0_1781797211863_0.7678156783401839","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260619080959.ab32c42":{"name":"remoteclaw","version":"0.8.0-next.20260619080959.ab32c42","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260619080959.ab32c42","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"48ea60f2766d4424b740684fdaa7eda92cfd93cc","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260619080959.ab32c42.tgz","fileCount":3457,"integrity":"sha512-OLUPmwyb99xhBoTZ9SSO0E+tU2k0abUzWRgIiKjiQYycQptYgduwV4nPnQspdSiWj2DzjNNq83vs5yfVOrzLsw==","signatures":[{"sig":"MEYCIQDF+noLO7TmG0vxlqzEg6A8fAzemu22IWs8p2K/u81k9wIhAObYEl895EbG0C1epNAy2KB1dFTU1/eW5H7zakNIgWGC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260619080959.ab32c42","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48849880},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"ab32c42313dd3468e1eebcafbdbe467345c4aab7","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.13.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.4","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260619080959.ab32c42_1781856640555_0.8378072753248302","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260619092535.8af2358":{"name":"remoteclaw","version":"0.8.0-next.20260619092535.8af2358","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260619092535.8af2358","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"4ddbd4de3bfea3cbd8cd5e7f0e6bd90581261607","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260619092535.8af2358.tgz","fileCount":3457,"integrity":"sha512-ql44Kb13NxWmbCkqA3DTcl0hR8E+ryksuXSGV+MVQ8RR24+BdDN+u7hYNy2hmlWXvq3eWX6zNSdbNYqP/KMclw==","signatures":[{"sig":"MEQCIB33kFqfv98gz/J31uJrGEUQNa4xMEo+u/YsS6HKbI3cAiB0rMsojqZ9nNJ+AmK5GL4T0wMIdlcb81DYa2fT4ylHag==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260619092535.8af2358","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48850696},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"8af23584c629ad892db2574686bbbe58ed8062ac","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.13.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.4","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260619092535.8af2358_1781861179174_0.0004693313557899703","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260619111050.f48aefe":{"name":"remoteclaw","version":"0.8.0-next.20260619111050.f48aefe","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260619111050.f48aefe","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"7db226283e729ac0707ba86399ccf2fa10f92b41","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260619111050.f48aefe.tgz","fileCount":3457,"integrity":"sha512-WR1RnK2Q41ZFd6rUT5eDntoL3PQ7wSvfkvPBL0BcEDSZb8Ty4G4IXoeiZFH2CsEKmVGQkbJ5HmPC9tnCEQQU9w==","signatures":[{"sig":"MEUCIDdqGWXT6acsPlJW80p1aSh0WCMnD6TZsRWlaC0y0EZgAiEA2XWBsFrieTZlTVuwdn3A/8BjUajI/3DvPsM8cDCjwkY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260619111050.f48aefe","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48850812},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"f48aefe85bf4c499c20ac90d398dc7c39628f563","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-lobster-leak && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.13.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.4","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260619111050.f48aefe_1781867490515_0.0036494612407154126","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260619120129.115ebed":{"name":"remoteclaw","version":"0.8.0-next.20260619120129.115ebed","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260619120129.115ebed","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"79ec61e16bda55d52e6eb8cada8c78eb8bda3b00","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260619120129.115ebed.tgz","fileCount":3457,"integrity":"sha512-jSQ/DJ8jAwQm2hyFa89oC6CECTv07iB1tBxeBiCLthNhmMLmKypgHpXkxwIOQuiFlOfqsoCBzLB9WjkzT4rWlg==","signatures":[{"sig":"MEQCIBywkJvJnjCw+PeK5IuqMbN3FuEaIBI3r6VRqysnRNvnAiBbatOcw1expyLmPlBR/KoTPOi/hymoPNwt/l3QOzLdsg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260619120129.115ebed","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48865635},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"115ebed384679bbd66194f687c2e14ea969299d2","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-lobster-leak && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.13.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.4","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260619120129.115ebed_1781870533630_0.10268131785525325","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260619124824.492af59":{"name":"remoteclaw","version":"0.8.0-next.20260619124824.492af59","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260619124824.492af59","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d9d29860e870d3847ac31b70e8dde9ea048469bf","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260619124824.492af59.tgz","fileCount":3457,"integrity":"sha512-4pExEpBpzY/h8s/OZ5rAxN3KEsprse2tkNK62O8a9zccGmtJuu5sJ43Yql38GDk9cQ9UAJVWkGRC364hBR7rxQ==","signatures":[{"sig":"MEUCIFjqX9ouZO5DFLw83vTkXXx2waAbcWdivOLNkHgq0cmmAiEAu4sqEcJwfgYtXchImblBLBggdwcpAljWK5N/cRkWPBU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260619124824.492af59","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48867834},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"492af59db12d2ded94d3733f747af6ffdf65bd30","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-lobster-leak && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.13.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.4","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260619124824.492af59_1781873346004_0.7455543334623322","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260619132112.7d5b0d5":{"name":"remoteclaw","version":"0.8.0-next.20260619132112.7d5b0d5","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260619132112.7d5b0d5","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"dd4ee795c3f36cc1247db9d8079a4db2326867d6","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260619132112.7d5b0d5.tgz","fileCount":3457,"integrity":"sha512-UsA+19hPEdiwbHs4+6MzdPhz+9sCvIv2rLXyam3MRrSw49+WTVYNTXnnCR0OABYFKtyvRxUBu7cA1OE8icOToQ==","signatures":[{"sig":"MEUCIQD+ng0qplVNJIonRdeOVUDMTDumV0GWw52DWpFTkIkXZgIgJctovxW5iYXvk+KdX+gMYyFoLUywSJTLfgWo6dKTXZs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260619132112.7d5b0d5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48867997},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"7d5b0d5c868c0603857f0b73b9b60bb5c518d77b","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-lobster-leak && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.13.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.4","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260619132112.7d5b0d5_1781875313426_0.3493720277700836","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260619163931.3da037c":{"name":"remoteclaw","version":"0.8.0-next.20260619163931.3da037c","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260619163931.3da037c","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"4e473764037139f1b418cbe3b830f90e5209eea6","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260619163931.3da037c.tgz","fileCount":3457,"integrity":"sha512-o7jNR53P5omqj2Q37snF2MfHWuAZHlb/kdVaNTYiOnT+vzxBMOHZsA8wYDgY8ILmCqZ+BFlZvud17J+6WsEkaA==","signatures":[{"sig":"MEQCIFAA2i9XTLaU1HjTd/mBce41HjMTIC9V/Dq9555Fv0AAAiA+0rd3nZNfTqkdg3zUYrRgHoTKr/jqpOwcaUeManLjDQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260619163931.3da037c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48865653},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"3da037cd2bd6dcecdba4117100ec7b57ba53962a","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.13.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.4","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260619163931.3da037c_1781887215459_0.13951120391004213","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260619171843.40d2eae":{"name":"remoteclaw","version":"0.8.0-next.20260619171843.40d2eae","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260619171843.40d2eae","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f6420716abaa970c9710ae3d6dc3de6cd787eafa","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260619171843.40d2eae.tgz","fileCount":3457,"integrity":"sha512-Y9wQP/fDi02yuEeh0EL2zTyqCbaUJilg1AjrHaKBZ29DBfrbBT7gboKTPdFLaPDUyzRWvtEwPDZERhh+2SG4pQ==","signatures":[{"sig":"MEUCIQC6VqPSZEdK+vGUT5bxY5WQVmICrY47VMRkLE5Cl8lFOAIgRHbMmYHtNZFQ4TlCg98j8BelG0lWuBr2fb1EFP7XkLA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260619171843.40d2eae","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48865507},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"40d2eae53fc5bc004782f8a27252fcd65ecd300b","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.13.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.4","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260619171843.40d2eae_1781889565214_0.39836287371098655","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260701212323.eaa1c53":{"name":"remoteclaw","version":"0.8.0-next.20260701212323.eaa1c53","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260701212323.eaa1c53","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"724414c2cd219c5eac85d4086919c13c63ebb355","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260701212323.eaa1c53.tgz","fileCount":3509,"integrity":"sha512-/4bg01fTuqTvyOZjEo2Yty/GhYw8LC9rpyz0sE5EnjvIyaXtMMdkwlCtfArOYJ23ky2SmrsOSAq9JjqmdHQROw==","signatures":[{"sig":"MEUCIGM2Kr7k43VXCr8PxI7olEv9FrkY40jgYgLjIQoMnec4AiEA7XpvJPenk76vLdU02kovFERp+m9fQnpp9PxC5SQQmJg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260701212323.eaa1c53","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":49169701},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"eaa1c53c8e8c0c3222419195ddbf0abf52234326","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.24","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260701212323.eaa1c53_1782941046510_0.35887783007598584","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260702124248.5f0cc07":{"name":"remoteclaw","version":"0.8.0-next.20260702124248.5f0cc07","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260702124248.5f0cc07","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"8f1d6bc1d529d769dc0e0563df0cedc82131114e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260702124248.5f0cc07.tgz","fileCount":3500,"integrity":"sha512-pXpqje4TgNEvroBZNTjptuZnPGgFjevbicXcI6Wxn4oQTz9FHPrb5vN+5O0zfC+9sSeI5GaIaTtPyGOuiLPMXQ==","signatures":[{"sig":"MEUCIQDuk8I50IBTrmC+V9CIsT9jAcP5efs/C5wN5HBMavaNZQIgFxda0saKl0L4Q3kot9exRzWWRQ4Fbtyz+pMBsihIt18=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260702124248.5f0cc07","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":49166697},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"5f0cc075af88c8546539520b28c9cb23f3ee3b88","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.13.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.17.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.24","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260702124248.5f0cc07_1782996211741_0.12480722590647986","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260702125035.debdb1e":{"name":"remoteclaw","version":"0.8.0-next.20260702125035.debdb1e","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260702125035.debdb1e","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"ee6a3beebce700ecf7b877cc10aac2f00ee7bc63","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260702125035.debdb1e.tgz","fileCount":3500,"integrity":"sha512-SXEdL8hdgokzgrTHDeRhgG1MPmrfa6joOTwCbqMwVgVemPcmbJE64Yvxf+JLwpMYeBH6JYB35FMzekiKH0ybAQ==","signatures":[{"sig":"MEQCIDV6dO1Su8fnmM16sSMtavZGnxj8Ek4/fzExB2wa/wvJAiBnQL6H+tBduDf2HqRd+W/093YlDeGQkaC7KijlO5KXAg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260702125035.debdb1e","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":49170249},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"debdb1e530e7dc030a7d0f903cd35f51bfdec618","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.13.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.17.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.24","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260702125035.debdb1e_1782996678478_0.6386884025168931","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260702142252.4b3da69":{"name":"remoteclaw","version":"0.8.0-next.20260702142252.4b3da69","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260702142252.4b3da69","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f83eea7ee28318fcc8b13a07d3402ba65acd6d2a","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260702142252.4b3da69.tgz","fileCount":3497,"integrity":"sha512-+D7HzQLXszVzMO7G4Af8KHjrgbcLNkShDNR9z7Kjqevgn+gUYDRcTWzHD+poVdJssMcJozaPgk/lJ4Pw697e8Q==","signatures":[{"sig":"MEUCIAFOMTUDs0ATwnOvKDwpCivszAoWbalZAEAguYaEU1rVAiEApXRzYG2EqqvFXtbGPiqGmTLkgA/AlmDSFwlE5s93htI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260702142252.4b3da69","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":49166073},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"4b3da692412ebc2a8f270cd0192cd56d652ec2c2","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.24","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260702142252.4b3da69_1783002213616_0.26828064181804345","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260702175452.0871a3e":{"name":"remoteclaw","version":"0.8.0-next.20260702175452.0871a3e","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260702175452.0871a3e","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"5c9889eb5d578b06a1daa507623eb19cae64cc58","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260702175452.0871a3e.tgz","fileCount":3497,"integrity":"sha512-ZLC40Y472OtsGIwOpKgNKkMn45jBWsV9mi8xq1F/bt3vcG8cuRD2tk4XyUUter7hxFcOk4rtJLmIyux7cXuIeg==","signatures":[{"sig":"MEUCIQCwcowLSUjMyqZkqhEVDXsj9dlaU6/64p7yMyRaYorrNwIgeDKbkvaq/lsUsp8hD8OuBF7iOf5k1Yp5MCYp5Sk/X8I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260702175452.0871a3e","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":49203096},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"0871a3e4dfee75e01151c0ad39914117b70c65af","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.24","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260702175452.0871a3e_1783014934667_0.12669096601004992","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260703061403.9e92f66":{"name":"remoteclaw","version":"0.8.0-next.20260703061403.9e92f66","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260703061403.9e92f66","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e36da1d244b074c1c480f0e8107c63ef4e1a49dd","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260703061403.9e92f66.tgz","fileCount":3498,"integrity":"sha512-THOJTrTjT4Nic1Smv0QMD2V1Nw7eNHOmwdLqbamYDE+6TGQE7GIW3zpI8qRJCjg0dKXW7Jl0iNrWxaZFbNH+gA==","signatures":[{"sig":"MEYCIQDJ0rEBliYnNyKDkrfNRKj1B+fdAkGVvH6buFVmev3fWgIhAJCsEYzl4PDzGiCiH3P+sJx2/4W3+WV1jWHO8fbK+oY1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260703061403.9e92f66","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":49216794},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"9e92f66236cf364257b48b3d13b1284ff6e99dfb","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.24","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260703061403.9e92f66_1783059284433_0.4046927683642876","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260703080559.17294ee":{"name":"remoteclaw","version":"0.8.0-next.20260703080559.17294ee","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260703080559.17294ee","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"a0c17ac12cd19e8e3347cd8a7c5a835d91a37965","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260703080559.17294ee.tgz","fileCount":3503,"integrity":"sha512-UTu++7cMglxKxc9jxtH6a7HenYebDAWzgO7CZ5VXeFazXcLEex8w39vGYz/XpWDncVt0u94TxNqrY4Xf+HprIQ==","signatures":[{"sig":"MEQCIA+qHfTilblF0fQWH4fV7HjTl+9iarVrIeluSvv9KujdAiARJKxwaI1U30uArmZjKne7NkLrg1a/xMp+wBjShYOWNA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260703080559.17294ee","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":49703710},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"17294ee1d3de80016bcfa7d92a54aaff4de99110","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.24","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260703080559.17294ee_1783066003349_0.6394864625046863","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260703124128.6f24dcf":{"name":"remoteclaw","version":"0.8.0-next.20260703124128.6f24dcf","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260703124128.6f24dcf","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"dbc3dad29abcfd6656b85046252a11c5bb8c2730","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260703124128.6f24dcf.tgz","fileCount":3503,"integrity":"sha512-epj6drxqRBD+O3Xt+DjQVXOBDNG5XWhs0ZRGUvXe1oImwm7o1+CuACtZFpg1z/qCsljZqZnKbUEjMTdOM1y1zA==","signatures":[{"sig":"MEUCIQDWH0lcCSYQXBZyeLo3TtknK4eQOytEPPCL0NvIwoJF4gIgYHOKSS3JPVV2mvCuIsZg6YaljWsJT69Y7cazrMU/fy0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260703124128.6f24dcf","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":49703425},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"6f24dcf5382d5175de09512c058a273420fbb2c1","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.android/.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.24","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260703124128.6f24dcf_1783082530372_0.180531781298936","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260703140226.2cbd8e5":{"name":"remoteclaw","version":"0.8.0-next.20260703140226.2cbd8e5","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260703140226.2cbd8e5","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"ebf4be214a8885e10b0f3c3007fa150b6b803665","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260703140226.2cbd8e5.tgz","fileCount":3503,"integrity":"sha512-tW+vu+cQawDr3QW5AuBsBaPrADgqSkoxpqHfT/t+idwFs7JiYa7p1VkMat1f7V+IfKi3G2rhygi0c/tXHLsOgw==","signatures":[{"sig":"MEUCIFtUr5GhnlgpldtgzfPpqYrTg7NRp1uzpzAWLtrp9cOOAiEAsxnE0rjfcll1v5PAGhaLAoI0ajGj3n0NJhNkQzTOyEI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260703140226.2cbd8e5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":49703511},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"2cbd8e5751ee9cab1ffe1b4180b13dda452b76b4","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.24","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260703140226.2cbd8e5_1783087392822_0.06583200705318526","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260703144931.4f1c10d":{"name":"remoteclaw","version":"0.8.0-next.20260703144931.4f1c10d","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260703144931.4f1c10d","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"6e69ac3681cc5cdf9499327c3357a83deb76b6bd","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260703144931.4f1c10d.tgz","fileCount":3503,"integrity":"sha512-VVxwQYhjjAa1U6ZKMEZFl8vE2+LrSJTdPsXVpNGYzdkOPF3DsyFeeQc/gdMSpF8F5iTw1zNCbEQHc5uJkaTl9Q==","signatures":[{"sig":"MEYCIQDOGZmdgj1geSKSEEXPhO6IsDG+xawmUw2QmmDz5S/EDQIhAK/c67oXcdNpE3Se42F0xW1c0rzDKTHMj6LI+VLsWJdx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260703144931.4f1c10d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":49703613},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"4f1c10d7bb86df1b643fc03f406e3b36a9805f32","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.24","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260703144931.4f1c10d_1783090215838_0.3478563415786933","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260703155411.f999c78":{"name":"remoteclaw","version":"0.8.0-next.20260703155411.f999c78","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260703155411.f999c78","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"4e51e9ce6f682ee657ba82b28fcc86c098314439","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260703155411.f999c78.tgz","fileCount":3503,"integrity":"sha512-FF5gKuMgA6okagFZAQXb178DBj6dYXgJNY5WsrcCGjq8wluBmXK+krXz5+RNIFTjeQYs7QZeVSnPl6v0dquz6Q==","signatures":[{"sig":"MEYCIQD2ML9XLx5NXyzJbot9UwqEyItwk9OLNqizgMX0ynqH2AIhALH2b3f3AhqygL6FT2SDNUEDqOjgBI1DPNjf4nWXh2aY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260703155411.f999c78","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":49703450},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"f999c7872d384a019ca1776a7773bbe6b598dd7c","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.24","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260703155411.f999c78_1783094094974_0.21634399977330365","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260703195102.093bb1d":{"name":"remoteclaw","version":"0.8.0-next.20260703195102.093bb1d","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260703195102.093bb1d","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"0f0d742a335c504bb1e3230d64ab3ef1eab886d9","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260703195102.093bb1d.tgz","fileCount":3504,"integrity":"sha512-v1s8qBVMcRxtUf5SX3CW5luE4oSsZdr719uUo5pYDKu3wV5cJAS18DitEbPCeerlBKBFbIvOoPna1sWbgyTEPQ==","signatures":[{"sig":"MEQCIEtlTo9POctvOEffyaU1fMqbrxxGkMSQ3Nb7Sxaab+IvAiA4BV466349vIb3INzFpYIt34k3hwPnrGKtTxcn75YxFQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260703195102.093bb1d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":49706715},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"093bb1daca6f9ee0e562ea7d9b0e7bf02de141f1","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.24","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260703195102.093bb1d_1783108304431_0.13038426164113304","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260704062242.6f6bc25":{"name":"remoteclaw","version":"0.8.0-next.20260704062242.6f6bc25","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260704062242.6f6bc25","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"ab85a250b8825be3c54e35b0051465e544a57abe","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260704062242.6f6bc25.tgz","fileCount":3504,"integrity":"sha512-Eao45l8eQ34ODncmHPsrrWwqRiLF/sdd7+mmpS9RRVC+RHk6df/iNZgu6KOVYweSD3a3gNtn/SWLXtrjadkNMQ==","signatures":[{"sig":"MEQCIGHwR8JLiJfKaj7dbwDPIA02SaQkZ05JPAcoGokjt+YWAiBgv2C+quyDMiN09S18i9OGdYJQII4TwJPCzlfpz3F0ew==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260704062242.6f6bc25","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":49708072},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"6f6bc25984e72c15af31ad57be712067490a39bf","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.24","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260704062242.6f6bc25_1783146204221_0.21058673346987566","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260704064209.9cb860a":{"name":"remoteclaw","version":"0.8.0-next.20260704064209.9cb860a","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260704064209.9cb860a","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"b4dfa226ecbad03dfef04e690b21c5ce0b334969","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260704064209.9cb860a.tgz","fileCount":3504,"integrity":"sha512-hJUvNTBN1a5rSz+zaP6txCt27BGrfMDAIednYkbiPnhBx5xbvF+uo27Ym2eorM8/KJKF+n3G9TV6xos7w04j/g==","signatures":[{"sig":"MEYCIQDg7Z9vRckIEQJFQrB/tzhkJ6fKYiasoNKvAkpmA9fCOwIhANotlAy5IQKWmz3nN9kgPUzXkBpa2/ktxs6PA4Tj2q+5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260704064209.9cb860a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":49703785},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"9cb860ac3a2b3fa7b6a7a72a00e5068ffe45062b","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.24","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260704064209.9cb860a_1783147370751_0.09656684913829716","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260704065031.48c8793":{"name":"remoteclaw","version":"0.8.0-next.20260704065031.48c8793","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260704065031.48c8793","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"2f422dd705e681b1c74bdba965fc0aedeba5f92b","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260704065031.48c8793.tgz","fileCount":3504,"integrity":"sha512-7FYL+29C3WkzYGry61h1g6gWt+vHsIVEhNqNjYwUHR/Jlksvcxy13+DchHg/l1VacNB+ToOapmwhkmba51qF8g==","signatures":[{"sig":"MEYCIQD7+l1f6XS3hXKvoayOtDntdcIVrjDzWXuRWhH4uuvKbAIhAL4EoN1iuWtPJdlCroNMmkY/27uNx4DfAuf7Quwdzm0f","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260704065031.48c8793","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":49703698},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"48c87936344bd041502cbf98f69d85e113d18216","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.24","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260704065031.48c8793_1783147873114_0.22363306881256784","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260704065811.874b007":{"name":"remoteclaw","version":"0.8.0-next.20260704065811.874b007","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260704065811.874b007","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"97c21313a818a477942b1773d1173c1083f376b2","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260704065811.874b007.tgz","fileCount":3504,"integrity":"sha512-63URmUJ6tiX+jdohyRbjdETpUyBVQwsAnGQVzPaXzJ5YzNLir5Uy8b+QHWD261grdEF3M3TnQyPoc0XDvxUKiQ==","signatures":[{"sig":"MEUCICsMEotKyYNYeFWPR7ewE0ls+PZD5tf5OcX6P46iCVxrAiEAqGyh+euqcXNWNC76C7Lk9HVoz0qeJhUvefkfoFN2Ye4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260704065811.874b007","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":49707856},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"874b00710a4440b8c48342cbfaa068a534d67e04","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.24","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260704065811.874b007_1783148335294_0.2939848264499987","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260704070605.f57151f":{"name":"remoteclaw","version":"0.8.0-next.20260704070605.f57151f","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260704070605.f57151f","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"dbdb20e58c5849de5b52002e49e1ea559dbaa72c","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260704070605.f57151f.tgz","fileCount":3504,"integrity":"sha512-3MZnEy3Hv39RAlaWGALSjjnxkCOadkZxVgY98Fn+HgXuNvyerEFXNjBc8VDqKdDu7IpfRtHOonq5oK6h3woJ8g==","signatures":[{"sig":"MEYCIQCP0JRXtiWSxPb2khNNJnYHzt9lZvyXHBR327JzJ6tq9gIhAJkw2eOLGuRJESYJ9bgt/8yVA1kn9e0UBfuykufRg+1Y","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260704070605.f57151f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":49708316},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"f57151f4946c6a799f97e7fa3de966964359bf46","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.24","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260704070605.f57151f_1783148806736_0.2757400562982222","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260704074751.fe76cd0":{"name":"remoteclaw","version":"0.8.0-next.20260704074751.fe76cd0","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260704074751.fe76cd0","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"375ce405fa93a6205d0ecfb5bc5032ba295e5a3f","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260704074751.fe76cd0.tgz","fileCount":3504,"integrity":"sha512-6mdXROclJjeoWFBqzhtx1xhYaw4RF2ZJx2tpmLrfiwsQjPV8Juvmcu6/NF4hfm0QnRIqrTydi+oaOI9ret35Sg==","signatures":[{"sig":"MEQCIAahCkeWtHk8/ao3EKIMhONvYOYDvGxRytdPHl/0REPYAiAJjwFP86B2Z6k0VFCPhoF6wnD8YDvsawRBYFdOgRRBWg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260704074751.fe76cd0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":49709687},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"fe76cd0c31620f83e3e86613b43a7307587de4b3","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.24","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260704074751.fe76cd0_1783151314184_0.3734940807412219","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260704075557.c812009":{"name":"remoteclaw","version":"0.8.0-next.20260704075557.c812009","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260704075557.c812009","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"9933ad8837b6b1599f4e9310398dbff12414c235","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260704075557.c812009.tgz","fileCount":3504,"integrity":"sha512-4n4S3s8nKJX3E8Tna8QciT/4Vj/QxxG/7TUq15daql4kqdTcYxX++J0a4xJK+dg25RaQfONYS2G+npEtjv4rEg==","signatures":[{"sig":"MEYCIQDO6fl4kcKOMhI8PePBNzH0lXiC76OPxgjoFKiCVU3uTwIhAMonqQ0WFHsxZbPOEpQ/4DOUyUcIFWRaz287cqxAUrT8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260704075557.c812009","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":49720454},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"c81200940c4139019b69c9035e6101eeac8b1d57","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.24","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260704075557.c812009_1783151801702_0.07358717332383713","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260704080724.07b06d1":{"name":"remoteclaw","version":"0.8.0-next.20260704080724.07b06d1","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260704080724.07b06d1","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"57bdf47e8520dc1a1319afecbaa5e6928c4d1973","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260704080724.07b06d1.tgz","fileCount":3504,"integrity":"sha512-SyxGY05cjp71KJefZ/qL8mhlX0YPbJ4FN5yJua2Id3fo/gVXrgD6W3ngCvdIu3e4Vnd9B8UHEgEdGBMQxuCtSQ==","signatures":[{"sig":"MEUCIGEg8BxJ2J7Cc1FzOOtei8uBw/ImNkZRovYGRlbVlb45AiEAmDp1JX2Hw9YA9tGUEfJV1RGnpTU5KnUbVIFGkdtDcvI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260704080724.07b06d1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":49720685},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"07b06d16d2986af85e1a1529fc421f0f3885b810","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.24","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260704080724.07b06d1_1783152487569_0.2771157215173681","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260704082218.b15302f":{"name":"remoteclaw","version":"0.8.0-next.20260704082218.b15302f","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260704082218.b15302f","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"8d0403c809ba016f1cf94ee087932ad775f9d1f3","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260704082218.b15302f.tgz","fileCount":3504,"integrity":"sha512-HxpSJTDyVUpT2hQTjx2TIWNPG4Ldi97d6m+oNiFBF1k3pvfrHgMswgEB26kWcogtdbaTXZk0ZxhF4otbbsay7g==","signatures":[{"sig":"MEQCIDJKaJD34d4ah+FvgmC2gqlFce4eM3HY8elEdgUqY4BqAiBjmks20qK0n7S1J4/w9vb5qaqWUwt2DF66nxpwZefepQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260704082218.b15302f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":49720941},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"b15302fe80582ab6a130baec56d64bb3bdfc5d33","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.24","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260704082218.b15302f_1783153381671_0.043099264206054144","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260704121249.c5d680d":{"name":"remoteclaw","version":"0.8.0-next.20260704121249.c5d680d","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260704121249.c5d680d","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"02aa5b14546db3e4092f99dae546525246212a64","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260704121249.c5d680d.tgz","fileCount":3504,"integrity":"sha512-msqJXIOpnYkLAs8/Cq6/VVs9sRSzXqjQvFpj+37/TfEQUthuOmexXFSf1Rjbn83Uov3RlIb+kQ4BD8TKM+GL3A==","signatures":[{"sig":"MEUCIQCFRNzKp6dO67XB/axa7rRrJs1sx//WBYu7VlRWfZdLxQIgBEeWaufk57er5p9Uewx6zqadCYQYgtR6qtsNh6sbqM4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260704121249.c5d680d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":49725005},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"c5d680dfe9a5610f3a227087e48b01350c497da9","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.24","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260704121249.c5d680d_1783167212843_0.29020088114320464","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260704122042.7b0d62e":{"name":"remoteclaw","version":"0.8.0-next.20260704122042.7b0d62e","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260704122042.7b0d62e","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e16799b3f5dbc94c8528dbc9ba4359a79e4e2d15","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260704122042.7b0d62e.tgz","fileCount":3505,"integrity":"sha512-qzykzq+pz3l7gTYK9+fcbEVM1lUZcxIZpbfmLSXN+yAl+x67Wc6EZaxHOLZg+dC9ynwVWmIqVvA/5lOX5T8+KA==","signatures":[{"sig":"MEUCIQD2FgaantSzK+8Us1WSVFixjg/ry3sf8Z2wuLm2q4714wIgFKBm27WId1/q9SXKdSAj9qts/sZM+UaGkfSaxHs5c+s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260704122042.7b0d62e","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":49732730},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"7b0d62e9f4b7b5b3438d161ca4649d0a6f96b444","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.24","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260704122042.7b0d62e_1783167678569_0.7834739561157078","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260704123625.51e8a0f":{"name":"remoteclaw","version":"0.8.0-next.20260704123625.51e8a0f","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260704123625.51e8a0f","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"fb79dfec268acf38970c0888bf4b6f2f20eabe40","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260704123625.51e8a0f.tgz","fileCount":3505,"integrity":"sha512-1P8zdOqTUIpcLXedIrO7EftLruQbkZG8EG35bFidl7+2ReeRC9CegZBzK21nnH6snkS6qgfInU147Jb3/sTNTg==","signatures":[{"sig":"MEQCIBgxU/XqA07mKeFo7fFdF3c58F9xFtNIE/t6mSZppD7tAiB6T3o4zvFpqZ/RVT6pSt+1cHo1BLKdlsuifb4LfrKGZg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260704123625.51e8a0f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":49734806},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"51e8a0ffaedba91fbd05042c20ecc91bbd504397","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.24","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260704123625.51e8a0f_1783168628332_0.17369727902289767","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260704130141.7219ebb":{"name":"remoteclaw","version":"0.8.0-next.20260704130141.7219ebb","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260704130141.7219ebb","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"8415e1e39edf9fced9b11bd0b3cbbfcfc1fc3c17","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260704130141.7219ebb.tgz","fileCount":3505,"integrity":"sha512-9I7QJd4Y+bvRzjnOsQaMhToFLCwq996l/LoxfshaZPTyLbJt5VKBE7HtC+Yit4hOOHBPtVockaarpiDP8nUNCw==","signatures":[{"sig":"MEQCIFRfEVF4MEx67vXv3r4hNsbQPZBSbjClWkx6Ww1RucKLAiBcTPUVznp9c0tCovEk74FRG1hl2clRUD4PltnZoKvWag==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260704130141.7219ebb","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":49735388},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"7219ebb1f95d13e5f79b37b838f08ec49d0924f3","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.24","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260704130141.7219ebb_1783170142913_0.6325292003897578","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260704130940.6d99ddf":{"name":"remoteclaw","version":"0.8.0-next.20260704130940.6d99ddf","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260704130940.6d99ddf","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"2ab6e100c5a425dfbd9687c4cf7556ab13e5bda8","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260704130940.6d99ddf.tgz","fileCount":3505,"integrity":"sha512-OmVuANTvkCXoXeP8YKlNJPcC1z4tRLXNGnvfSEHuwzGqaZNwOW8gYiDb3Bj1WupDoqeLaRpCzPVlxRPS/ss5Og==","signatures":[{"sig":"MEUCIQDSIcwg/QvSvr/W8ezoL7EU7B+Vg939j3tXOlN2v/AI4AIgEZhSgtJcpUUk8dHWMYduHoO7pZ7RZK6ZVupG6nVKQXc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260704130940.6d99ddf","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":49737043},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"6d99ddf483d166e3625e62550ba82551c8832d58","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.24","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260704130940.6d99ddf_1783170625497_0.6824331218513822","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260704131908.bc3d027":{"name":"remoteclaw","version":"0.8.0-next.20260704131908.bc3d027","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260704131908.bc3d027","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"873e2efbfdc6db834137595f9a5ff2ffdbe5ff59","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260704131908.bc3d027.tgz","fileCount":3505,"integrity":"sha512-+6r/l4JxkGJTRxf5HgWKXEO75lFhd+3LVO/BrwpQsVT5HeFm7B1kcF6i7GuPwxveUCWrGytuhUica/8noMXCTw==","signatures":[{"sig":"MEUCIQCA3Kls3zsM+GiY4hnKcO/5uhM5PHgAxXg166H0ge625AIgLKZP7TOHNP7/sXR/t2pSe7zFwqWI7534e34NBlZhcPo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260704131908.bc3d027","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":49737015},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"bc3d027c641a9c8f83e4a25c0e1a78bfe155af45","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.24","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260704131908.bc3d027_1783171190721_0.9416823382609916","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260704134231.cef82f9":{"name":"remoteclaw","version":"0.8.0-next.20260704134231.cef82f9","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260704134231.cef82f9","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"5d27cd8c8e6d7f12935763e78a3605d0d0f0b406","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260704134231.cef82f9.tgz","fileCount":3505,"integrity":"sha512-8McbnI/zE9BkyRyN0yY/dSH5lDiXWBwAzaGHeuiVYd+sHnYqQpQD2VIig+plyR95g+F+cZw9Tdm018d4Z6nbYg==","signatures":[{"sig":"MEQCIBVUUq/9SiMGBKbH294QyhkHLMPWyxAYM/5NmcEyOhqjAiBxsqVl5nYIMvXWLzzNZxrLkm6p9bfBN+AwJYvyiGL8AQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260704134231.cef82f9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":49745506},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"cef82f96568a4e35a28a449dbdfdbb74bd870156","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.24","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260704134231.cef82f9_1783172592724_0.6694419546245716","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260704164118.f26e8e7":{"name":"remoteclaw","version":"0.8.0-next.20260704164118.f26e8e7","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260704164118.f26e8e7","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d6e5d7457e589769af7e3477cf0e030e4f28175b","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260704164118.f26e8e7.tgz","fileCount":3505,"integrity":"sha512-LDkQ9aJwc/PLXKI5FhtXYE1fPWS2aVd9CnYjwrp1f4VDr1dk0VP9xIw/2ZGMDFcpfnwL2QVF3pxYjxo+K0dPjw==","signatures":[{"sig":"MEUCIEXfteH/CYCjRpBi35pFpDs7wt0rJzzywPAlLLKhl27BAiEAwg2h0yKytSmSFB4yTAcwwWM7xMsRcInDn3h3VSESyX0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260704164118.f26e8e7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":49746286},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.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/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"f26e8e79cf90dc19a61ded8429ffe47880909630","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.24","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260704164118.f26e8e7_1783183319241_0.9165108942313422","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260705111321.87b4429":{"name":"remoteclaw","version":"0.8.0-next.20260705111321.87b4429","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260705111321.87b4429","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"bde63b4771a060e0b6d78d272b1296a7529b1a47","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260705111321.87b4429.tgz","fileCount":3519,"integrity":"sha512-Xj50geVUuACAGKyBPCxpfdOddRplvMveKzFTS1gFUl/R5tpZFWUy4kATju9n4u8sVjpqgvyVh1JuNHcukREIOw==","signatures":[{"sig":"MEQCIFTtAjEhytnS1l3Wsh9FL2eYnSqp78CtGZ3FlW5SY5K/AiA++kkxGLmMj8KHHjY0mf3KXpT4QHj9nlS7OQJzPIgJnA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260705111321.87b4429","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50325301},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"87b44290efa20d1d9af9c172a61af7cb82a3903f","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.26","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260705111321.87b4429_1783250046106_0.8343148157782521","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260705134841.d96f761":{"name":"remoteclaw","version":"0.8.0-next.20260705134841.d96f761","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260705134841.d96f761","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"320cc1c2af1e0812c46fb1d0490797ff6f65ec93","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260705134841.d96f761.tgz","fileCount":3519,"integrity":"sha512-A7aBd7NbsyyNMZiHNYoLgBqLHAGU8MNCEUnknUxSaazeyFWsrF9RI/tgY1BIwhbn5B4TiLVkbUPxt4scnaH+7g==","signatures":[{"sig":"MEUCIQC0fj1qMjMT+kJ0oZIa8xBZ5KEtmPerqPMq0qI6ut4ASwIgSbVHgFvwQirkwLDz22i4ZoHmJsBuNsl4ENqBSoCFZEk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260705134841.d96f761","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50337787},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"d96f761cc6401aabfe2d78b867ac150541864c24","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.26","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260705134841.d96f761_1783259362804_0.05986627447689652","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260706043647.cd56ae3":{"name":"remoteclaw","version":"0.8.0-next.20260706043647.cd56ae3","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260706043647.cd56ae3","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"b85067d76bdd3e020ce742036f1f088d3476265d","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260706043647.cd56ae3.tgz","fileCount":3544,"integrity":"sha512-g3feRiSLH+qKTkId4pGXL7DTK6Ih16GTmrmzmWqZEElVRAzWsFW3YGh+Dk1GgkcPEgKU2GmTCyNamtSJJ5gYnA==","signatures":[{"sig":"MEUCIDqcgOgbt7LtnRl52YKawnYwFdhfSpCifdw3nC8FhQMdAiEAlHTeHglU/calm7wuCJysc6yUX2tWEsDgHmY5Ub+TOiQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260706043647.cd56ae3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51553572},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"cd56ae3c48440d45ab252dbaf491dead3543ee3b","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.29","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260706043647.cd56ae3_1783312650165_0.779872334169726","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260706052218.9822e9e":{"name":"remoteclaw","version":"0.8.0-next.20260706052218.9822e9e","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260706052218.9822e9e","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"175213a49d607fbb25969285199307a02c457419","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260706052218.9822e9e.tgz","fileCount":3544,"integrity":"sha512-lDhn/68MLIJ08sgZtljg4qxDaZX4yC1i3B0gGqQRov+SUssyah9+I5PQD0ayKB8oQCUlg86BDoe7xDDWKIdMwQ==","signatures":[{"sig":"MEUCIQDV7PP7XvVxPDJULj8IFRCKTFOd7cJzXctmUZ46f56mzgIgS+TfCUAL0tzMzkvT1hBOqWiVB0CSab2Do88FjY5Pru8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260706052218.9822e9e","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51553869},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"9822e9ed3a7b2198213612daf4a97e3e0ff9463f","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.29","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260706052218.9822e9e_1783315379448_0.7837153558509244","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260706150407.386b571":{"name":"remoteclaw","version":"0.8.0-next.20260706150407.386b571","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260706150407.386b571","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"2d0c2b1bd2e2b125877b0108d2e8467923952257","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260706150407.386b571.tgz","fileCount":3565,"integrity":"sha512-X8w6u8DHq6H57QA1aFXEyklk06ov54kjAuRfpeWqbPe1UxO2O5y0lsvBa2ap3vWYkQeCoKQ1kzeDEuut8lJpIQ==","signatures":[{"sig":"MEUCIQDESK9iuRF02JV15RuvGf8snMyWiLo9Hb2rw4liB7lAhwIgf8gWbf0M76ssqTm7o1ccHOPEeQPgclBx/ZmR2M3G94c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260706150407.386b571","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51830749},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"386b571ea9c3ea60f57cbadf5f19925bdbc6826b","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.4.29","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260706150407.386b571_1783350291018_0.7702796787940638","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260706165237.64de70a":{"name":"remoteclaw","version":"0.8.0-next.20260706165237.64de70a","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260706165237.64de70a","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"b862433abd668cf18d531b20b579db7e18a0ce83","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260706165237.64de70a.tgz","fileCount":3570,"integrity":"sha512-VABSlDqm9KTUXpBEBk2EysrXNvFpR0UEF2+UzCn9jY2JcYcro8GA1GyDr+q6ESu5ab7J2nDf06QNmT+DCXcRfw==","signatures":[{"sig":"MEUCIQCkSggu8gSCVOjOlA1IHYuI4BZczN54MBlB9gCPNmTygwIgVQmPRXbjLDQQI1074qE6S/QCSDcoX/91KFR1wd54qAE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260706165237.64de70a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51944563},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"64de70a30984b5884c463acece673b98cfdc072f","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260706165237.64de70a_1783356805964_0.45432690614232807","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260706195010.48fda61":{"name":"remoteclaw","version":"0.8.0-next.20260706195010.48fda61","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260706195010.48fda61","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"b2c3433187c65ce88e7ea3fa1a655e1ba624c033","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260706195010.48fda61.tgz","fileCount":3570,"integrity":"sha512-0Y78bLRs07yTBXxvul1uBpUbClh+BWtKCcQ86EyfxsOMke7b2ZBO596qOInNSgMGxhTwfmZOeiDKuL7H6vA3yQ==","signatures":[{"sig":"MEUCIQCMqTJOmIclBKhguPZzESoMiEHp15lG7CojP/LzyzBiCQIgA1BggEHkq3fLo7bQRaHjxTOPwTzOp055+LK2lFsGAAM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260706195010.48fda61","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51952176},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"48fda61438b73e20b7a6679676626864bcc8ded1","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260706195010.48fda61_1783367455901_0.44613010059949776","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260707113638.95a57e2":{"name":"remoteclaw","version":"0.8.0-next.20260707113638.95a57e2","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260707113638.95a57e2","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"b834cddf2439fe609b9a0bb337785d514963f17f","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260707113638.95a57e2.tgz","fileCount":3601,"integrity":"sha512-EEdD1XhhUtzRzFodnGgPywyC8w61Q0GDlsQSSGVbKtcFEc0ff3+Oean/Wz8BS85IMXvxjmnufO0KWX5M9ycbFQ==","signatures":[{"sig":"MEYCIQD63ZglTp27DzJddOHpbAlNvFORqR6ebIWIKPFi+sGFpgIhAKCSBulionmCY5Myb3lOC4oMtBSNX21EG6edI5wLdpAB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260707113638.95a57e2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":52353723},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"95a57e2409436cf2b4e2d1b7d5896af29e30ecc4","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.2","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260707113638.95a57e2_1783424239342_0.06695065546031231","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260707125849.0de4574":{"name":"remoteclaw","version":"0.8.0-next.20260707125849.0de4574","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260707125849.0de4574","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"66bfba92f3a6fbd776da0cf7efc8e2f262a170f0","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260707125849.0de4574.tgz","fileCount":3601,"integrity":"sha512-ja6jQk8E9TA6HIBPxnCrntHabZ2K2WVl9ryKgJA2eoS+P+brzjPzgWldH1F6Fhr7mhHnm5ly0bPS51lfUZTprA==","signatures":[{"sig":"MEQCIHXCNMmWZmDCjTYq3ziFsbpyRd02xKjcUSKYHVI09oP/AiB2s+LIQ1kEGd7gwW0oroh8tMA8PzyEVmt1Za4WO8xAZA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260707125849.0de4574","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":52350246},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"0de457432facc80f6577114b2b7b23b867b53f3b","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.7","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260707125849.0de4574_1783429173819_0.06859303263889793","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260707220556.5e19538":{"name":"remoteclaw","version":"0.8.0-next.20260707220556.5e19538","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260707220556.5e19538","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"68951136219ced692768a7baecb6899577d3c599","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260707220556.5e19538.tgz","fileCount":3601,"integrity":"sha512-mnB3XKWYqwxWGE8EU3KzYkE62H3hbgDryGhG4jQ/VwnIOoUHMGimLw09D2+Kq39LyUlmpu7Ys1VrFuKcz97EgA==","signatures":[{"sig":"MEUCIDVJmg9U+faMYq7N2KGvE7vA5iZP/5d2WzCuve39aXTbAiEA5rVlzE8dIGATmIEdSq367Jp/d1BnMNpZQexLb15YIlo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260707220556.5e19538","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":52352423},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"5e19538070352577522ecb5fbecf72b971a22ff1","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.7","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260707220556.5e19538_1783461999053_0.5243101393294327","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260708065244.83b8083":{"name":"remoteclaw","version":"0.8.0-next.20260708065244.83b8083","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260708065244.83b8083","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"367ec50f6fc1a73bfc66e7be95725bbf349e5f01","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260708065244.83b8083.tgz","fileCount":3601,"integrity":"sha512-4XWnuwTkz0c6CbFaxDpURiZkx6ND0NcA3Hcnle8WOKQgO7e97uoBKp0AD+tLExqENlU+Ow2dhdDtIRyWinVPow==","signatures":[{"sig":"MEQCIE6h+SIg3Ymgs4pX5h/8rhDk27zP33VLf9s2vsl8jl6KAiAC8/JcybOOmIpdIpG9bduD8jejvsZ3jK1gjd+GZfao8Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260708065244.83b8083","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":52358733},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"83b8083bb9af6f62a688c8cca453a5a0685ac861","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.7","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260708065244.83b8083_1783493607260_0.6549554081153637","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260708091618.bdf2b8c":{"name":"remoteclaw","version":"0.8.0-next.20260708091618.bdf2b8c","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260708091618.bdf2b8c","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"0ebf5f9154018f095685accd4c764ae1dfe724e3","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260708091618.bdf2b8c.tgz","fileCount":3601,"integrity":"sha512-rU4LN2sJs4ndMIXwVtlWW8x5u60y03dqmuI10cBGj1QlMzp+7n1ArRAbvu5miMPgoTkK9Q5/ZgQX0eaSpOp25A==","signatures":[{"sig":"MEYCIQDMZhzLwzcM/MkMwQadq3DxdJQKsDAN2ZuwL5RUpBXcoAIhAO53X30sR0NWEtj/v6yMpII1DMzrX4A9RxfSKSxPO21L","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260708091618.bdf2b8c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":52364897},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"bdf2b8c201549b6e2ec3795f985a33091a47f3a5","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.7","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260708091618.bdf2b8c_1783502223145_0.09397883142013175","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260708104751.5082ee5":{"name":"remoteclaw","version":"0.8.0-next.20260708104751.5082ee5","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260708104751.5082ee5","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"fe8ed30bc533457fa85938c4cb45978826a09354","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260708104751.5082ee5.tgz","fileCount":3604,"integrity":"sha512-absCRMs36jSob6JWwlEYqEIPurOjaPioL34JeZwpCI5bqtjvIdw64TOzyjXvwu/8X/PSPT/fzWxt81YWzaiS9w==","signatures":[{"sig":"MEUCIBBd0gJvSumkGlUypY2idY11D3Ts2Asg0WRpZFsEGdbwAiEAknL20EHvxV6SDFzh3yRTTbewNwsBz1+apWubIyme30c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260708104751.5082ee5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":52376267},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"5082ee58aa1e3d7e14f7fdf336062aa8f872f4c5","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"openclaw/openclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.7","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260708104751.5082ee5_1783507713353_0.23601729206130284","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260708204309.4ecdd71":{"name":"remoteclaw","version":"0.8.0-next.20260708204309.4ecdd71","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260708204309.4ecdd71","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"b1f67d413d45f0a8a72db08e11b15ecb2214fd0b","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260708204309.4ecdd71.tgz","fileCount":3646,"integrity":"sha512-yvQrYUWIWgULVaBZyLoREQXSPkFrqxQZk4Gonqzrm+aSZbK3ezOrndWNURGDDK4yp/9RaaJboMQgxtPbtbpEmQ==","signatures":[{"sig":"MEUCIQDuBCzZfG84v/8PW4C3bs5RpYXBt6I/g+EB9wZM79k6WwIgApzf3vEdtDToxtoR/Zef4tDaPMj/MHLqfZvl8ej+mt0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260708204309.4ecdd71","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":53300387},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"4ecdd71dd0bc8070d8dff3557ababa0ce36c0569","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.7","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260708204309.4ecdd71_1783543433478_0.4817998678087638","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260708211408.4b9f524":{"name":"remoteclaw","version":"0.8.0-next.20260708211408.4b9f524","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260708211408.4b9f524","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"8ef92f053d49df4358ee988af2c4d9255bcec625","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260708211408.4b9f524.tgz","fileCount":3646,"integrity":"sha512-/pUQTK2cDnjxDL0sb/s+K77mCa7ZzhCdAI0NQd3KcHdmnxZsvEVKsP933VbcO+UfwPjnu6hfX9TCwQ0Zxkkamg==","signatures":[{"sig":"MEQCIEicAoe+T/B7+yU598Ohjxw4rkV/DDv/31QvBSl/Me8jAiAKxaFcWakNua+nIYyB4GbsXnhT9IxXinxTtVQCf4TacQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260708211408.4b9f524","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":53300429},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"4b9f524a72e2780c3fff9dba4dd277b2cb1bdd74","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.12","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260708211408.4b9f524_1783545291074_0.584618425268868","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260709055704.dd177f9":{"name":"remoteclaw","version":"0.8.0-next.20260709055704.dd177f9","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260709055704.dd177f9","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d81e3a40915d32929ede849bb439cfe1ac7263ee","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260709055704.dd177f9.tgz","fileCount":3646,"integrity":"sha512-7E3+cljPq21+vNDrr62X8aydh7ZgTSlcQH8/jYPPO41LmbpP6zuhktIatVBPthZ9iNhRdKT/dYmlog3M6hy2iQ==","signatures":[{"sig":"MEQCIB+Le6ikE1dSVpZPnHaYffMc77We7glRbYXSkgtjcjq0AiAynGB4RFVbdZGjwGpAlpMczok94aBjLcXJigrZz1Nsmw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260709055704.dd177f9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":53306628},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"dd177f923e0272b948e677926edbc9b8868dadd6","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.12","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260709055704.dd177f9_1783576668401_0.010763461570201027","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260709062648.8e16b27":{"name":"remoteclaw","version":"0.8.0-next.20260709062648.8e16b27","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260709062648.8e16b27","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"c8dea828d968b6e79d6aef7b5f189fa2c9b3f6b4","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260709062648.8e16b27.tgz","fileCount":3646,"integrity":"sha512-ToCmcXDQQKb/64dVnqzU7QYnU++KnjxLkW/iWkwSkR8VC8zEi/1wmeph3BOQwjDj7XaDgmxztsWV0iXiXsYvUQ==","signatures":[{"sig":"MEUCIQD5GJey8SQlu1kE62lZI6JGUo5UKp+Ds9XYgCBFiEHNXgIgXdToM24MvaWC43muPtWiRT97atlhXefAX1Rw/u1FiCQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260709062648.8e16b27","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":53303414},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"8e16b27d87af26a04d665f0fcecfb1e9279363d4","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.12","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260709062648.8e16b27_1783578451404_0.4520986741623163","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260709072806.64e11c6":{"name":"remoteclaw","version":"0.8.0-next.20260709072806.64e11c6","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260709072806.64e11c6","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f29cfdef74652df62181de2cac654d71b7e81858","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260709072806.64e11c6.tgz","fileCount":3646,"integrity":"sha512-aczQDG8kJe06VYPFjd8t6M6q6if+hw6YHF7KEqh/68jWR7qnVBTPbhTj+CYfu9Pen2yom6lvPX2/bU4QhwAByQ==","signatures":[{"sig":"MEUCIQD5MDMq9ZS+IOedK9g4gQOc2/5Qd3e3VluP715v5jdzYAIgSRrUJqE06egsHqZqGLJn8izqmqrcQzUSqM8WhdXuVyA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260709072806.64e11c6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":53315139},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"64e11c61dd131cb7c089c79b0eb8a27cdc51bfa1","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.12","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260709072806.64e11c6_1783582124109_0.8832982848137327","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260709083658.d0b21a1":{"name":"remoteclaw","version":"0.8.0-next.20260709083658.d0b21a1","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260709083658.d0b21a1","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"971fcf689c119dccd539448097097235a81e5066","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260709083658.d0b21a1.tgz","fileCount":3646,"integrity":"sha512-HJ2WOtpntkSx8+U/Luwpc/WOcICqCBA6GqXSqINIiqpZtbap73IfhjImnPYMDn/CgNg9LmRy3k4+Jx1bXtW7gA==","signatures":[{"sig":"MEUCIDnZkd2FwH84hp2fbhvmpwgPq5zAVApZ4GiXGtpixfJ7AiEA4YCmVzOa2EG7njw3xFmcQMwj/vZ+sYsRjMWogOjwiD0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260709083658.d0b21a1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":53311887},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"d0b21a1e02d1a7e2bee1499951b6d0700a95832b","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.12","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260709083658.d0b21a1_1783586262483_0.8159480881131012","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260709093918.ac1ea64":{"name":"remoteclaw","version":"0.8.0-next.20260709093918.ac1ea64","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260709093918.ac1ea64","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"3e98d615e5d9be2be0c7f163d468a044b5e8feb6","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260709093918.ac1ea64.tgz","fileCount":3646,"integrity":"sha512-bZDy4bOLJBYf1uBtM4uApgFWPbxmvHg81GNxWdujgaubcQ8aIUFOwDyx36pN+FixphOD4sFLy8XlvFw3FRVUOw==","signatures":[{"sig":"MEUCICXMx4wGKHsqgcNS3Xcv3aMdgiuKFoFvCc7Gx10XOSNOAiEAxLla8cykh709iWjjJLARh7AcxwwnOPMVWcltEnWnzK8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260709093918.ac1ea64","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":53315656},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"ac1ea64e2347f672034a3685a65a93834546c39a","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.12","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260709093918.ac1ea64_1783590002215_0.9831968613194044","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260709190437.b4551b9":{"name":"remoteclaw","version":"0.8.0-next.20260709190437.b4551b9","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260709190437.b4551b9","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"1ba6651bc68d2f9a39ddf4d3b167e13d67723a50","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260709190437.b4551b9.tgz","fileCount":3663,"integrity":"sha512-qdWdH6zJ+BTrZnCv6B72wKAs49cobZiqxk4Lm5WGa9at9B7IUfQMKW7wwPM+ICZIor/Tqayu8f3HUVcphbOnEg==","signatures":[{"sig":"MEUCICaKpg5HTbsoETmmA4nkDFTze4Hw8vgNhZXrqGaqUCHsAiEAm6CNYehapDIz05WEJX8WP9FxCv+xvKyMn6NryFGtzBQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260709190437.b4551b9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":53784947},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"b4551b96759f30dce5da6228e1a4a6b4837d4dae","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.12","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260709190437.b4551b9_1783623924325_0.2354920698763523","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260709212902.d2043be":{"name":"remoteclaw","version":"0.8.0-next.20260709212902.d2043be","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260709212902.d2043be","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"07fb87c3868eba5c33c5aefd9109f47610cbd67b","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260709212902.d2043be.tgz","fileCount":3663,"integrity":"sha512-BIesy9/p7V8hmAPPvsQ26IgR/xgujWwPXVGeDu6whxKSfymtjRNjXYYOfY/QSu/Hkj2/Jgn6qsLkiWeAhsc4FA==","signatures":[{"sig":"MEUCIF1dS4S55lkFJTb86ZO0urzxJpAS4n4VAHZ6r07KyPoRAiEA+xyHNE3EM6516CUuXmGKwOcFmnPn03HMXJq/RJ6VcU8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260709212902.d2043be","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":53783436},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"d2043bef044bcfa1273ab6cbed139b5a9f2fb2fe","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.12","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260709212902.d2043be_1783632586963_0.47743066159186354","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260709213746.02472bc":{"name":"remoteclaw","version":"0.8.0-next.20260709213746.02472bc","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260709213746.02472bc","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"b0e0a2dc4f9d6d637fe570b5f114f17fcb03972d","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260709213746.02472bc.tgz","fileCount":3663,"integrity":"sha512-9+znq0R5cVblBkZFAjyGp7JPX2yKpeKgLuIW1AkSAPa6wM7HaC6HjQI8MpnTVJDkOkdI2Ly8AojZXwBjweloZw==","signatures":[{"sig":"MEUCIAccYA1DNgmWDkX0GgonWB4tno07r8Abdv2x1kxjF6XmAiEAoUtJL2dEj5mLVX0DG5aDOhoK/ma2ayenaVRSrx4mvfg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260709213746.02472bc","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":53787876},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"02472bce329d48df5d71c562a66689e242598d51","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.12","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260709213746.02472bc_1783633113357_0.36692865534101604","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260709221832.f87f7c9":{"name":"remoteclaw","version":"0.8.0-next.20260709221832.f87f7c9","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260709221832.f87f7c9","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"5477aa2c4d3f13f7454209691beec13daf139dd6","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260709221832.f87f7c9.tgz","fileCount":3663,"integrity":"sha512-6Q1hw4bGw5f1U3iliF/fqwgmeN/WNQj0HxaighfWPCm5NkDmN7e9r2oqA1Tip7o+s4humljzpOMMH55o9/pNvg==","signatures":[{"sig":"MEYCIQCNKkTqhM3gg1jBUDPoYutyjgDoHoHFRSV/Zz6s/ELq3QIhAJAu3CDdtGi9ngYKArqTvnYhRO/adR867CSfADArBW+q","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260709221832.f87f7c9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":53787838},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"f87f7c951035ba93c5efcc37e2d3ad8ced7919e4","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.18","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260709221832.f87f7c9_1783635556312_0.9648603286437512","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260710071725.23940d2":{"name":"remoteclaw","version":"0.8.0-next.20260710071725.23940d2","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260710071725.23940d2","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"0df94e96ee570aa3b1aa792b06f7f8dd3511f3e5","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260710071725.23940d2.tgz","fileCount":3663,"integrity":"sha512-jeemTP0TeotOcTqLCrjhiQ5cCmM4ve4fCP6fFqc6E/evADN0FV1O7Nl1JrWwWBgaw/dtW1+jrRvn4hoskrFRdA==","signatures":[{"sig":"MEYCIQDhnCD7/S5P6+mafbh92fQ0SphFi239cnzfXbTavBD3wwIhAJNJ6//F09Ow3vLIjQ1pM8M/CE9uKTixEdClUvOhaqMN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260710071725.23940d2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":53790495},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"23940d2c354b9cc4390f70269db2e195b557998b","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.18","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260710071725.23940d2_1783667888896_0.26873083899580164","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260710103700.b3d2711":{"name":"remoteclaw","version":"0.8.0-next.20260710103700.b3d2711","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260710103700.b3d2711","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"da16eeabe883a9da216a24015e10283e2c121d1b","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260710103700.b3d2711.tgz","fileCount":3663,"integrity":"sha512-pFD3NPQhAyd5nSdPOKaz6HZB5VGKdEVf1inxbuUTukJnJPt5W3a6yAk91mFlOHmuEgeMVAtoOFh2v+MDVs2aKg==","signatures":[{"sig":"MEUCIG78pt4SCVPdfdVZekpZVzUHlLA3et4NWK0xTR2EeAZKAiEA8PpIJZP3sH6FUOJdQ3liGG6JQ9DtADoznWfO0uqb9fQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260710103700.b3d2711","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":53820551},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"b3d2711b0838703cb1f10e90a5a149444a336315","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.18","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260710103700.b3d2711_1783679863995_0.7545117054076678","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260710124418.b2ba783":{"name":"remoteclaw","version":"0.8.0-next.20260710124418.b2ba783","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260710124418.b2ba783","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e0a7647b2a81045d83c42d9718969f3b27f68458","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260710124418.b2ba783.tgz","fileCount":3663,"integrity":"sha512-r9EkJnocOb+NcboNRuvyhuNntdwpwr5dECkO67I61MXqZhXt9B2GasmGRJkh94TDyDHkzaSNNXPjraL67x2n4g==","signatures":[{"sig":"MEUCIEEIY3GQKR4mh0wr/tk9GbZEHU49nFIdMvXAzaRn5/+9AiEAjBmC3Di7o0lzBgPUwKTq2vZ6GxugaS5qk+w+Kxnw7Kw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260710124418.b2ba783","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":53826395},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"b2ba78387ae91f8c7322dae995cf977dd047b211","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.18","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260710124418.b2ba783_1783687502851_0.21789616817422774","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260710164301.b8b03fb":{"name":"remoteclaw","version":"0.8.0-next.20260710164301.b8b03fb","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260710164301.b8b03fb","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"3369845d62f20c97de54e4d5aa016520360bbc50","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260710164301.b8b03fb.tgz","fileCount":3676,"integrity":"sha512-EavCis2nwxHdnW2hEO0jEVpAxLpgexnXMnQuxO50bAwcxW6puLxKCEHWmFFZr2rRIruL6hiitkBIhdO5u81w7Q==","signatures":[{"sig":"MEYCIQCZs1C+VGJslxzJazzghJnDsi8F9XBn5jVsA8+X2PDcZgIhAPV9qNmI1dpVd9/y74A1E9jPHDzqB7ajmF0v9DKzoIf0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260710164301.b8b03fb","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":54243080},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"b8b03fbcb1e287c8b64f834819c98e6e29e82fa1","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.22","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260710164301.b8b03fb_1783701819961_0.2612615496633839","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260711102706.4806c92":{"name":"remoteclaw","version":"0.8.0-next.20260711102706.4806c92","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260711102706.4806c92","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"9afd89d9ca03693d8a5ce3d09f17cf4721da9597","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260711102706.4806c92.tgz","fileCount":13518,"integrity":"sha512-XWfuqTcCy+Jl8lFBP7nAjaCxgH8dCukzhgym6wcioLr+4ePX51uMlQfTWTFRtyViYfmoRGWPhnZapimBXfWMog==","signatures":[{"sig":"MEQCIBjkxjzGVGJhFNZ+NYyJyQU6qCDJEf8g0Dq5KHE2MGJyAiBmRvM5m520Is+rvh3bIbZIvUUFCjudftlEVtrAbModzA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260711102706.4806c92","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":317040946},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"4806c9284799dc72c8f41d90e1761a4fb425ce6b","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260711102706.4806c92_1783765722057_0.9087222765453615","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260711113157.eea14f8":{"name":"remoteclaw","version":"0.8.0-next.20260711113157.eea14f8","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260711113157.eea14f8","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"a7cdf1c71cd5c6d24b0ff9d10049ac881d6a1e63","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260711113157.eea14f8.tgz","fileCount":13515,"integrity":"sha512-nGlQs4b2L1+mSqaXmTEcG0lvr5dJ99G8YwsoQkLhbrukeqG35ThYHynlQ4lTlYl3xADnfQAuhZJIBGqXex47Tw==","signatures":[{"sig":"MEYCIQC3Lj1/Is2q1eYFOeDwOSb5chWUz4rigMuX6akzCKQAfAIhAIVi15xvP15S4AY+rS3Pem7NVYuXbSWI/6yOqd62/a4/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260711113157.eea14f8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":317043352},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"eea14f892126be4bc3b41f7f64794c21f522a370","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260711113157.eea14f8_1783769613117_0.5588748228396772","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260711114716.856490":{"name":"remoteclaw","version":"0.8.0-next.20260711114716.856490","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260711114716.856490","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"68d562338419f7e9842cb099630ed2af2e13b29c","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260711114716.856490.tgz","fileCount":13515,"integrity":"sha512-A8ilU7adeqlx44C9ReZYTfiQYpcAXMvy/bu9RBlKJ4XReJfg0Sky4ISfN77cT5gBp66eGmj6C1dBjjlFooOHGQ==","signatures":[{"sig":"MEUCIQDfuDROsGvmSVjrRY2hG6WYgn+ean7xYSLAna6+pidmRwIgNpAncJ5zCylDCupJgFJoY1sCtdCzW1jeEleIBPBpXJo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260711114716.856490","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":317038642},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"08564902ba1087c86d91274646e3eb8761ee514c","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260711114716.856490_1783770533455_0.17151746543032553","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260711141655.7943fa8":{"name":"remoteclaw","version":"0.8.0-next.20260711141655.7943fa8","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260711141655.7943fa8","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"9fb7ada8e40a590187a7734efc13a6e13d9ddc0e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260711141655.7943fa8.tgz","fileCount":13516,"integrity":"sha512-xdsrSMK1eoGtRzj8pcldcW8LF/VPblTRkBKUdOM97N8I8udH7R/JKPxSw6wXXl7sM4pkibihP+UKCTJ8koVVLA==","signatures":[{"sig":"MEUCIDaCq6joT0yb+K4Eklkj8yEGtFVMjaox306sHp483uaGAiEA8kfNvr4e5w5Xjug0E7wumFP2Gp7rBmtTHbGBXIallGw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260711141655.7943fa8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":317163577},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"7943fa8aa81bc719e0605530fd22defcdfe2cdef","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260711141655.7943fa8_1783779493976_0.29218729855229086","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260711142718.6edf83f":{"name":"remoteclaw","version":"0.8.0-next.20260711142718.6edf83f","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260711142718.6edf83f","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"cc9a3ab32d71b8ae3596d08e6dcb26974648e056","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260711142718.6edf83f.tgz","fileCount":13516,"integrity":"sha512-OJjg9Y37rUou77gChxOECSRbMAyKuhqjFiDOVxwJZWGam4LSuG61E3a+8MUIQ49Y9IEQbnzKlghzubG+RROw5Q==","signatures":[{"sig":"MEUCICA11lqKPJBcFy9+/uIzyBqGQufN8ga+yAR93Fc2xJRCAiEA2IDwtpXWaWvvMMYwbLsOfCuqyYyrmLCuaMyf5Cvkn5A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260711142718.6edf83f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":317201300},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/channel-config-helpers":{"types":"./dist/plugin-sdk/channel-config-helpers.d.ts","default":"./dist/plugin-sdk/channel-config-helpers.js"}},"gitHead":"6edf83f84d3765572c23920fda6c2ae9801b621d","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260711142718.6edf83f_1783780133476_0.4326408254950227","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260711154622.ffa82ca":{"name":"remoteclaw","version":"0.8.0-next.20260711154622.ffa82ca","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260711154622.ffa82ca","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"5ceb123a8e84ca1c7f2bfb1e103f3336103b88b0","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260711154622.ffa82ca.tgz","fileCount":13526,"integrity":"sha512-Jmj0E22oA5d7sN0/VKeUFRoJwwPV1uYFR4KHcXAtNQ9H16uscq1ajXgRhBOQBO0qvwueFd/gsmydOJ2iNillsA==","signatures":[{"sig":"MEQCIAR5TuZPmYHOlm10Mjz5sHyu5yxrMYkAicCOIwdk6CWeAiBKSe3rnDNiHYkVcBueAmeWsCN4WdWVBbTvue2E+7VuIQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260711154622.ffa82ca","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":317245614},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"ffa82ca0b0aa6e8ada00750cac82aefbaae952cb","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260711154622.ffa82ca_1783784877418_0.8124948934482701","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260712000115.4155e58":{"name":"remoteclaw","version":"0.8.0-next.20260712000115.4155e58","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260712000115.4155e58","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"a3eb3e77c91d25c6e61e8b3848fec0fac6bdf25f","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260712000115.4155e58.tgz","fileCount":13535,"integrity":"sha512-Fw2qopbhZxC9lBGw/GfoP3kO46f64dv7e9ImVLHfj4wr7P0URsEyq6Vx76d5i3NYQwSaBkQstOQtteqsTE+/9Q==","signatures":[{"sig":"MEUCIHZJFKkht/7LWNlNW0I963YNhDjwvD6GZPYWh5oLvF4vAiEA8z15DMnrmHQsNMAhKm/lL4/VAeS4tx2gtEfxrcC8jJM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260712000115.4155e58","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":317366487},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"4155e5857bc15dcdc02ebc3f9cc630060779202d","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260712000115.4155e58_1783814574025_0.08078613579490734","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260712001357.a179346":{"name":"remoteclaw","version":"0.8.0-next.20260712001357.a179346","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260712001357.a179346","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"2c4cdf88adad98889fcfa21c69910b633c40026d","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260712001357.a179346.tgz","fileCount":13531,"integrity":"sha512-0RAo/E1IxUUTZKfunL/3pGndGqkDVVfHrFujGLwTuBwknNBJCnzk9YfIwh+DYJ504a5zZR5YB4nT3FGsKQT/0Q==","signatures":[{"sig":"MEYCIQDbMJ9qKNfYBE1XPiguDBiknJbeDnnJIKibqAiuGIsNuAIhALFGDOaOauCoewuxgThrR4ibm7MBRv1KpLN7bXlNJGYX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260712001357.a179346","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":317352689},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"a1793464be96b378b6b6e9139bf1d5eaafc36e36","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260712001357.a179346_1783815335258_0.9427705147273753","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260712013858.8245de3":{"name":"remoteclaw","version":"0.8.0-next.20260712013858.8245de3","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260712013858.8245de3","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"acd9a424e6ba3d087708c3d4d82eac8ef218ed21","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260712013858.8245de3.tgz","fileCount":13531,"integrity":"sha512-eEafe++gtSH66C3rN8d7RWltrjJlv+9ZUbo3CdKMrhqxZbQDR0phXg3SUkkSaR+ia0J/TK33gplP07GB7K+syA==","signatures":[{"sig":"MEQCIA79vzOKKIhO7BozZosbkIBSqxij6PpKtLFMd6l6kILiAiA8gAk34EiTqPS6sAEWJM7a3P4K6b+J4hpuDqvyykX/mg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260712013858.8245de3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":317352691},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"8245de300d5da946ae247d20209f66b7253e91c2","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260712013858.8245de3_1783820416175_0.36264843112864864","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260712033002.cde52cb":{"name":"remoteclaw","version":"0.8.0-next.20260712033002.cde52cb","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260712033002.cde52cb","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"c5cbed89c648f031fe81417e78088c778f7c2f1a","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260712033002.cde52cb.tgz","fileCount":13534,"integrity":"sha512-H1oNpk6LNd6NXvvpClI/og6EF5bhSSJdhSkeFoXQVuPUrdeuC56wOrlV1ECgZUaggDPqQxxuACr3Es3K4aV7OQ==","signatures":[{"sig":"MEYCIQDRQC7p6mowoPZx9SsW17GBa22o7keMzx9/KWkBEK2QTQIhAPORRupKkwgq4H5qBViXAmptP4AfO/+CjSD6MRWbZLGe","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260712033002.cde52cb","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":317669853},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"cde52cb53176eba7c68418d386069f2c3ebaef0f","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260712033002.cde52cb_1783827102155_0.7590152998426127","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260712075302.d140bd3":{"name":"remoteclaw","version":"0.8.0-next.20260712075302.d140bd3","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260712075302.d140bd3","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"c3abd938abb427e5a671cf01802c9de3bfc4cd85","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260712075302.d140bd3.tgz","fileCount":13534,"integrity":"sha512-ulsKijq/K949OEKNnuUvp6FTjXkQiW2bROAot02fJuxKxnztn2fTtk0d2TQ3ibL1SukLws8MNVH8oqfeyUGG0g==","signatures":[{"sig":"MEUCICs7aHKYdZv64+zaw96NVaxQc7i4INnrJVwPzdB20uYwAiEA2843rJTuE/fp3AixmI8XwEQONztP9HOeLM0UeHH9GeU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260712075302.d140bd3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":317674347},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"d140bd38d4b7b3103d995988d1ed1825c10e2b25","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260712075302.d140bd3_1783842877064_0.22843923102463637","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260712080330.a256305":{"name":"remoteclaw","version":"0.8.0-next.20260712080330.a256305","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260712080330.a256305","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f21483d27eaa5b1ac392fa42797734ecd1054177","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260712080330.a256305.tgz","fileCount":13534,"integrity":"sha512-Os+qCoBMdOtCe9bggrijMQGSS+d+dtzhmvFILytsXA6hTg6G07mKSpUsOzlgTLplEL4yX5H5drZGrp5p20yM9g==","signatures":[{"sig":"MEUCIQCX78YNZPiXNT6yTLmNQkN3EspHbjRGRYAg3CZfFn7gMAIgBbYmc56J27cgO07rmZJ2anpQ3o4tx4inQEKLWYliT+g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260712080330.a256305","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":317713985},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"a256305eeed3b1180ddc17552ef22c6ef5063c0b","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260712080330.a256305_1783843508384_0.8389944976615638","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260712083908.b7721e1":{"name":"remoteclaw","version":"0.8.0-next.20260712083908.b7721e1","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260712083908.b7721e1","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"361d239b2a608ea0128758f1ca6d258c28f3df04","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260712083908.b7721e1.tgz","fileCount":13535,"integrity":"sha512-GTfdX9SWxXeQBpcI/2bof90vW3v7YOIWQUl22WUxTJ1glrcZolsGnA0kff3ksqi29zlQSPkzTO4GTW2KXZrqvA==","signatures":[{"sig":"MEYCIQDm7Rlz9ITyvxwc4PfvXYqX+QUqaJg7R8tALmh9mlrkAQIhAM7l94pVvjzQYolTV2GkxJqmCZZCJSR2oBZH3havoGVQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260712083908.b7721e1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":317718332},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"b7721e19f288e8ec328454f0f3d4de0986559377","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260712083908.b7721e1_1783845647873_0.5024464879521338","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260712090439.fcaee82":{"name":"remoteclaw","version":"0.8.0-next.20260712090439.fcaee82","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260712090439.fcaee82","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"7d2fb383b5da430f3344e2041720f8890298bead","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260712090439.fcaee82.tgz","fileCount":13534,"integrity":"sha512-Zhe3zdcr9qfUKpd9jisqx8axoquGBcB/GM6H9NkG9dkynrQz5FWtFCinr4dy0oITWyBxev6897xEf/rNQivprw==","signatures":[{"sig":"MEYCIQCYBVAqi2i161NdgWDT1y1bf7mgU3op+1YWNLeNNuJL9wIhAOtfFmI49G87enyqBcmh29CF30sofhU5CXEez6Btgrgf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260712090439.fcaee82","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":317713097},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"fcaee8231944b2731d9b696f329c0ca35844ec4e","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260712090439.fcaee82_1783847160383_0.11404790734083203","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260712091801.a87816d":{"name":"remoteclaw","version":"0.8.0-next.20260712091801.a87816d","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260712091801.a87816d","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"a24b0e12625c03b1b1c6e234f0c7936d6abca131","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260712091801.a87816d.tgz","fileCount":13534,"integrity":"sha512-ulMlMatAk8oILdQEhZXPTbszomAQLK7PGehjRT5y/dnvCjzYQjM6U6SzhNJYMpTWPfQFaljsXIKz52sHNYHudQ==","signatures":[{"sig":"MEUCIDRnPgxWSuXd9QDF3ZkWeEGwTcoG89tXQb2K122GWCBUAiEA7ji7YMOcdnThkUVXNiIOkDrV7FmLoLs9Q2f/RvUFsk4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260712091801.a87816d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":317736114},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"a87816dd2de14651dfddf5cb3fc253194fe47d84","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260712091801.a87816d_1783847978610_0.654300046829221","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260712100210.5297701":{"name":"remoteclaw","version":"0.8.0-next.20260712100210.5297701","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260712100210.5297701","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"3ed0a5dad0e8801c2ee83555b213b38f3dcedf04","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260712100210.5297701.tgz","fileCount":13534,"integrity":"sha512-Bfr1JhZlk2H+ggBOIUVaTEAO0Yl057/lt4BEesrtzu2j3VK5LUYU7EY0nxtp8n1vmKGfE0hSdI7ThrLgJ6frxA==","signatures":[{"sig":"MEUCIF1l94L3VYcVudeHyBRMIDFkQIeursnM+ozIWDOim8oJAiEA8Y3fDGML6AUZVGDKpIgf903q4bG5dW7cHSJ3R8pk0XE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260712100210.5297701","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":317749841},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"5297701f078b25239582dcbacec6ad2b3faf785a","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260712100210.5297701_1783850601486_0.14460640684378712","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260712103511.6a17d05":{"name":"remoteclaw","version":"0.8.0-next.20260712103511.6a17d05","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260712103511.6a17d05","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"7f8e7fa49145952ae71899a9c2327028602eb8fa","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260712103511.6a17d05.tgz","fileCount":13534,"integrity":"sha512-h+uxtnBWBtaIZUuDwvfPfKPK3xltSHoeK9BbCTOx0PE7Hu0s+darrRyWKOKSLWZb67fcMzXEVUPX6UtcLbU/Rw==","signatures":[{"sig":"MEUCIQDJBzo8n5NUAgUW0HJGOApEdHAKeCO4kLPfH4jG/eh/SgIgDjzcBCDL2P03iP6fqKL/DLwmq+IisXzUKab/GupW7mo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260712103511.6a17d05","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":317769602},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"6a17d05c9494580b76e15a9e66276077c280dd3b","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260712103511.6a17d05_1783852594971_0.5822320388669426","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260712104606.5681e3c":{"name":"remoteclaw","version":"0.8.0-next.20260712104606.5681e3c","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260712104606.5681e3c","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"db87b18be98a803ca37e2d19f9cb41f82a7f9525","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260712104606.5681e3c.tgz","fileCount":13534,"integrity":"sha512-StPEhwvRF0XNolfBwSsEQrdrjkF4ddjatvdwng0iRcTf+Tuf8HRVVxha9Emmikwn4/A0GRW9U97PnftmDvBqJw==","signatures":[{"sig":"MEYCIQDIOfajZUn1kk6Fwuyojwk3VMd+I2G11eMha964VflF0wIhAI/N10sn+ffW4mEbWp3GunH4HlH1LZgFyf4dt9PomGpK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260712104606.5681e3c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":317795911},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"5681e3c5ddc9de242c8fc6c8d7a0f1ddb2be92b3","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260712104606.5681e3c_1783853267110_0.4021645681680559","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260712110804.8666a10":{"name":"remoteclaw","version":"0.8.0-next.20260712110804.8666a10","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260712110804.8666a10","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"a85abd6edab2f56af3f723f6e78d2cb13cf7f847","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260712110804.8666a10.tgz","fileCount":13534,"integrity":"sha512-mg00CpHdWHzhiCsHR/txjJUkiW+4Aq7WfcFyLtEY+WJHBHy7+vTwFfb0qQVVA632JbQ4Qr3sg4WP/F8lpoEn4g==","signatures":[{"sig":"MEUCIQDPLbOSzZ7WLnc9WNFMS/5mqIR4o06s4E3cwFXoolhX2QIgO6pmou/QF6N+CbvRrXG3JROudZTLb798AUiVgXcSa+4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260712110804.8666a10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":317808591},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"8666a1052b33c899181394226c9532e33f13b54c","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260712110804.8666a10_1783854580115_0.087321787570114","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260712111844.3205201":{"name":"remoteclaw","version":"0.8.0-next.20260712111844.3205201","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260712111844.3205201","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"bdc5dde385b0670812d45a5e829dbda69b1352ab","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260712111844.3205201.tgz","fileCount":13534,"integrity":"sha512-HPDJwnMoPGhlXUDPXJ+Dv7mZOwm2OwveCA7Y+kz17N7ARP39FI51zjewrW6NOWERiQ91+U7Ka3D0/RYwh3BxaA==","signatures":[{"sig":"MEYCIQDpYuvp1zAIX2HNGTiSO1Fy5/z/RYUljHZqrtG7RtQl6wIhALRGByiMMft248+RfEknIxFBwjWwztsnNNStw1rxyg80","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260712111844.3205201","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":318008449},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"3205201321c506842d6d3d860ead6d9e5ce03e7b","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260712111844.3205201_1783855224960_0.877083736045855","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260712112910.9332b71":{"name":"remoteclaw","version":"0.8.0-next.20260712112910.9332b71","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260712112910.9332b71","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"464966d99dba1de687f69a7e1fea9e328d89414a","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260712112910.9332b71.tgz","fileCount":13534,"integrity":"sha512-GlSnRfkmBB1PEXvEC1xlR4qN03L4Ft4zzoUA2VvXm3b8Dpoo05YsAAhkIFvimOU7wslJi6H9Huz1KX1TwOfnIg==","signatures":[{"sig":"MEUCIQDIgDvJZ+RuXG0SBvkbWLgkxH4Mt9zEzRefM8IYlBYRsQIgMCafK6k6hw80j6G/nr/oVU07J5V71ExOBQfAhYU5Wpo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260712112910.9332b71","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":318008449},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"9332b71b9329df741b3c34b5eb94a14a50b27318","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260712112910.9332b71_1783855845082_0.30047173788979276","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260712114907.1078a68":{"name":"remoteclaw","version":"0.8.0-next.20260712114907.1078a68","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260712114907.1078a68","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"ddbf382d61ce524737c2b6748a57aeab5ca70844","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260712114907.1078a68.tgz","fileCount":13534,"integrity":"sha512-JeAKBrh7m7lDCAICf+kcEp+W30xGbIayMK9SO+lGTP70MebPIH3bnkJsS65ABODBppH9VKK01t/rGOuFZJDfCA==","signatures":[{"sig":"MEYCIQCoelNSOo81uzVWhTsUPPY4GpV57vRc7nSchqHLUF+2EQIhAOoeAifOtDB0eo0zM8L36sZwkdIlV7vf088QFW5tJ/+o","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260712114907.1078a68","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":318009667},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"1078a688c86895516cb7700476214ea19849bfec","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260712114907.1078a68_1783857046872_0.7331761565109993","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260712121005.d2b05eb":{"name":"remoteclaw","version":"0.8.0-next.20260712121005.d2b05eb","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260712121005.d2b05eb","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"1defa5b0444079c57a08ac4f20ed0861eca5362e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260712121005.d2b05eb.tgz","fileCount":13534,"integrity":"sha512-gXuQ5ngohZ2F3HZHK3CwmWeOiuNZ4TBoXnLaGONWAG+Kq4cDP4PbUM+vNKgriA+s5vLMb0PY47dixkvAlU3R6A==","signatures":[{"sig":"MEQCIAwVfXE10ESLWEgKwk88jFMoIgwUXx2xHV4zGNaqy7JiAiAUR4i//eQoT87KeT6W2yHluuYd1S7ipHTmP8GM2l/HiA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260712121005.d2b05eb","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":318008421},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"d2b05eb0a255665943ca68f4e29c82ee804e6edd","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260712121005.d2b05eb_1783858282489_0.26816487272882195","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260712194622.33274f6":{"name":"remoteclaw","version":"0.8.0-next.20260712194622.33274f6","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260712194622.33274f6","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"06d8bb7de84f139d3471346a7de22419853fde65","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260712194622.33274f6.tgz","fileCount":13534,"integrity":"sha512-lNHXXRvjACT1mxZbdi0QhlOgb+My2iQR+knQ6N4zKPhuduwEUxMEwbjQcRA1Pzd7iuxXAD8GsCRRxbWWvub8mA==","signatures":[{"sig":"MEUCID7VbHiPD6DKd1opdTYmyZQP1ORO8VxtDtGfnJmyn17MAiEA3Kday1hEUMvCdDeiqi6CT6rLa6MO++ZKbf0acKGTPqo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260712194622.33274f6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":318008808},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"33274f6f075ed3381bbfeb2bd46099e349af1027","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260712194622.33274f6_1783885679905_0.00899458780007012","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260712204110.ec21875":{"name":"remoteclaw","version":"0.8.0-next.20260712204110.ec21875","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260712204110.ec21875","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"1f2293b715664c086a3dc55ff88a1fc1a0243fba","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260712204110.ec21875.tgz","fileCount":13534,"integrity":"sha512-mUvfk2dM1V/1mrKXS1jqij8T5AiFJnYXdTe7XZEMUlfPSKIkjllyT3+eoD0sj3WpfaJY+L1gcEVicgZAdABCRw==","signatures":[{"sig":"MEQCIBzg1IN/eVEWkMX+pPoyuqGho9KC20oygsAfINOeVXjMAiAxHVpn5IAyS4n3RdU4Ymlwct/4J+TZgPJKv+i+4ldCbA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260712204110.ec21875","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":318004014},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"ec21875cd3eab9f9cbad9b9ee55e8387af52e7ce","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260712204110.ec21875_1783888968511_0.5951958051635942","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260713111707.31b1abb":{"name":"remoteclaw","version":"0.8.0-next.20260713111707.31b1abb","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260713111707.31b1abb","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"24178a35ffe68ca6f8410962e5c05535de29bdf8","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260713111707.31b1abb.tgz","fileCount":14665,"integrity":"sha512-gVK8r0JKqEu0k4ZDhkVe+VuxPZJyjndlXuVI/RztGOavmNKMtYc0BpsD0tBki/qFephqFhsboTbaaLY6b7SFHg==","signatures":[{"sig":"MEYCIQDBHnqwyURIBdj7rb8+aktOfnbtaWqvvyokCy9fmV7ViwIhAI0+Bi5zQrSAABR9pHJ/KyPS9JL8zHBRZkDriuCqHykr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260713111707.31b1abb","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":353554580},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"31b1abb20afd8d654864280ebcd85615a35c403b","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260713111707.31b1abb_1783941528834_0.08476326732308914","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260713184432.75ca916":{"name":"remoteclaw","version":"0.8.0-next.20260713184432.75ca916","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260713184432.75ca916","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"526f1ce3e851986192f9b5169ed0e85dd2b98a7c","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260713184432.75ca916.tgz","fileCount":14665,"integrity":"sha512-NL7LtF+AO+P1ITyB7GqGskGEGQ3FfbRcM4SwaraWTcECnE5kNe8JCSxlCKNUPz3M4obPvSVlYujRx3TnhOW82g==","signatures":[{"sig":"MEUCIQC/LaskRWHjV8zcXugx9SBgRpohlzy9C3QDxn1FT5JQ7AIgdHbQYvFRWsRimaKuLaJxHmoPonWmUZRG2Yg6xbPUQAY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260713184432.75ca916","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":353596533},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"75ca916872257501bfa44ac68505f154932ffc0c","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260713184432.75ca916_1783968361276_0.43884662838190613","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260714134700.db2a144":{"name":"remoteclaw","version":"0.8.0-next.20260714134700.db2a144","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260714134700.db2a144","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"00deb7d62ad54fa8aef250f934357b4550f88896","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260714134700.db2a144.tgz","fileCount":14665,"integrity":"sha512-RuWJ6PFkiDJrDCGO08BMKPh2YSkcTAmhCL55/KRYCEsSYHJ2lvPdTuqzw7XPmlkPSXVNwyFMPQoUq7OvqdGzqw==","signatures":[{"sig":"MEYCIQDKt1RU2n+phJP3O+s1NhKx0BUe2gX/CN7dC/oX4vdnewIhAMOAGABAp2YBUT/uspN05vn8utnKhHLFaRag6M2tgWra","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260714134700.db2a144","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":353596779},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"db2a14476549bb6a609f16d2f8d7055934f11829","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260714134700.db2a144_1784036929183_0.3497991051599554","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260714161223.99b09fd":{"name":"remoteclaw","version":"0.8.0-next.20260714161223.99b09fd","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260714161223.99b09fd","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"9d4611496bd192d73672e8d1bcf41a57b9aed824","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260714161223.99b09fd.tgz","fileCount":14665,"integrity":"sha512-/YFDAoLLR7ZI58Qt2ki2+BcP7tmopuEsd4sdWNR6AzzLrn6Tno3uUM+yLVRvBjCCs/8wGQ2/Z+3dGG0Wy+z7Kw==","signatures":[{"sig":"MEUCIQDKeu+2W3CQAOVTBMrFULxHfEIUSYUearZWCyumCSqwLQIgMSnF4XGlCvzO9TcabldTAxoHxrvmfvK9MgdsHGv2HMc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260714161223.99b09fd","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":353612720},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"99b09fdc3db76fcc409d3edc47bd441876edd649","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260714161223.99b09fd_1784045627256_0.6773701469342159","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260714180105.44041cf":{"name":"remoteclaw","version":"0.8.0-next.20260714180105.44041cf","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260714180105.44041cf","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"03a602e2af04cd2f2756ae41e71c0b67c86d222a","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260714180105.44041cf.tgz","fileCount":14665,"integrity":"sha512-gEiiTLbYA8osjr0iUIyTvb1L5pzcoMYxtebHCLHqCl6E8ysyjscYakDLE54ujp8+TBevK8GqsNLTPx4kJy/ApQ==","signatures":[{"sig":"MEUCIQDwPk7RZi0iwlsXp99F6K8WzxWX1FW1uWMWNMV2k/owdwIgDQMtfdEqmH7wgZUVwIbypd+EMcyN1g/PwNHSLRuqxTM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260714180105.44041cf","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":353570993},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"44041cfb5731394776dfb01c1875a87d790b4541","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260714180105.44041cf_1784052184670_0.35396688925568776","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260714181357.e532450":{"name":"remoteclaw","version":"0.8.0-next.20260714181357.e532450","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260714181357.e532450","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"39a2768e5dae320c238bb97a6edf8b2ce048fac6","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260714181357.e532450.tgz","fileCount":14669,"integrity":"sha512-oM5vHhMhfdrCjuvcsk9LUihOoOw2ZLubAA7yY6dPg4fBa9gyUo4c4ywT3x8H9F+JoQBVAyQvt+fNLTY5CUG37A==","signatures":[{"sig":"MEUCICd8Tx+5dCoZurBCdJo8gP8AqjGaJmCUD71GX61b+xM+AiEA0FXlfql35VasX9S7H0EofUvdMdWVzzE/ePkHzaxhcvI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260714181357.e532450","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":353597682},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"e532450eccd26f6ee8335ebf2507833f662705e5","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260714181357.e532450_1784052924775_0.93250531089174","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260714185111.45e779c":{"name":"remoteclaw","version":"0.8.0-next.20260714185111.45e779c","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260714185111.45e779c","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"a3e4de615786a9e1a18cc31e11f9a12da3ad610b","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260714185111.45e779c.tgz","fileCount":14665,"integrity":"sha512-AP61kVhzMXWKXAAJf/1NL7b+85Y9z09bKxo5sRgdsh6K9nlNoJRTkZWLcWHlK578AMOn8SfkiIGtb0wBak2XHw==","signatures":[{"sig":"MEUCIBGOMA0gupruEnml4j1D+8T3yHv1uJXR5cHJ8Nxy1AkjAiEA1oV1SVj3VhtIFB+tdCvg1T4bLinpdGLZ4Jl2oCNayKE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260714185111.45e779c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":353639491},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"45e779cefbfc78b9ac106fadb10e1dee68a99163","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260714185111.45e779c_1784055177706_0.40893822195821516","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260714210008.88755e3":{"name":"remoteclaw","version":"0.8.0-next.20260714210008.88755e3","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260714210008.88755e3","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"2187b7fd9d543f89ab103bf511068dc9f589e0c6","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260714210008.88755e3.tgz","fileCount":14667,"integrity":"sha512-23KrNuCXmg/yG3NBaqZFqGKBGHJi8LQvDd9CveZgirsTW8qK+Mdd7l3cyxqlL18KQRBulJGjlu+jz24sUsm/vg==","signatures":[{"sig":"MEYCIQCXwgzBg8HSPDpvqlGeC8h1QIMiFb14CuoovhN8qi7/4AIhAJVazFPcofVDsS4NGTWbT0PCM+h7mEV8eGiBKXzg0oGP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260714210008.88755e3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":353661269},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"88755e3703a31123230e75020e31212f0307b626","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260714210008.88755e3_1784062911951_0.30689546650440724","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260715090835.ef888e7":{"name":"remoteclaw","version":"0.8.0-next.20260715090835.ef888e7","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260715090835.ef888e7","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"a99d7a9ce3cdd17f47d1043f3d07266f83a16340","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260715090835.ef888e7.tgz","fileCount":14665,"integrity":"sha512-gcDjZcPdn6uvQobjpUrfUfcigSYBcW+b2jy0z2cPOcMaGlK6HiHG3c6NQjVFzvrza5XmWnjbZDthqssPN4KZbA==","signatures":[{"sig":"MEQCIDb15PK8KlI/OHANwgmTUH7VFCmuerO8jpRICyCfrOxGAiB0FwLy505hiirelx8+DZbdV0My++Bu/oqgBd7iFseAfg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260715090835.ef888e7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":353651085},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"ef888e73cca0f74ea10074eca6cc614501fdbb7a","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260715090835.ef888e7_1784106622554_0.10527787755922535","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260715092819.7001747":{"name":"remoteclaw","version":"0.8.0-next.20260715092819.7001747","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260715092819.7001747","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"121d425f2704af3f40f45c26f5f9179af0404338","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260715092819.7001747.tgz","fileCount":14668,"integrity":"sha512-3qXP4NtBsAh9xjKNZyM0IvTU9za/39d3MgnDl1F9teUXVl75PP5njaa7HakmL4I6no22tMjbqD+zCbOYgJkW/g==","signatures":[{"sig":"MEUCIQCjHcVAcQtketYl/LHScTvVjjmbDYeu7evnKqRRTuFEtgIgGA9+I/w5GULfhrXtkfpx24TFb8uKYDUTV3UJYi/Y4AI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260715092819.7001747","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":353702730},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"700174717e97c209fdec46fe838e78de932f2e69","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260715092819.7001747_1784107782292_0.7111728944013354","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260715093831.eec1ece":{"name":"remoteclaw","version":"0.8.0-next.20260715093831.eec1ece","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260715093831.eec1ece","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"639a7bf52ccdec5370a136a7e2888766767eb339","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260715093831.eec1ece.tgz","fileCount":14665,"integrity":"sha512-A6gvTKtdvRh0GbQoX4Btvsrw1GRA9I5G60wL6bi6tGPqIqwHwRrPE8+cinziS6604rm+gXQfZMbW8Dr9tQJNpw==","signatures":[{"sig":"MEQCIG06EFz7Tv1MPZS0UrHPW22CZgNbKxTr/Lf9f72de7lRAiA/KH62S9zw/24/gZ51d+RWJzs/89kOqRLzdz1WRCi/Aw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260715093831.eec1ece","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":353700568},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"eec1ece3f92dfee0d5f845b4f71b35debe551588","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260715093831.eec1ece_1784108410531_0.7170512228413313","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260715102620.ea73d68":{"name":"remoteclaw","version":"0.8.0-next.20260715102620.ea73d68","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260715102620.ea73d68","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"776549d7cdfbf93d1ad2587018ff0f102154e805","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260715102620.ea73d68.tgz","fileCount":14669,"integrity":"sha512-r5ODv8pOb9nqb7eMZ8dtwYjXUIBCMhSdKzkpzMwUCLamPZFMBXPWyiv2uLG9wg/XhUSJXKjIPbU3grYKJbwUSA==","signatures":[{"sig":"MEYCIQDtegptxmLyRpcrZ6uADAIfqUwimOjTKNbLB+Fh98ozzAIhAPAjp8+dQjZjvvDp1OHT9bPTQWMp8NppkXCGbDNq79i7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260715102620.ea73d68","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":353714447},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"ea73d6874b1904a9edd52706fa286ef0e63b6cd2","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260715102620.ea73d68_1784111283911_0.1274751089088917","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260715114702.9e526fb":{"name":"remoteclaw","version":"0.8.0-next.20260715114702.9e526fb","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260715114702.9e526fb","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"14c6ddf5967730c9f5c630046a867cd26c9425f6","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260715114702.9e526fb.tgz","fileCount":14665,"integrity":"sha512-8v/EmcFelHe1b3zOwP+h+kODgR2+0qFBoOMzxpPhX0Ff+Bt0JYmel0ZaFjsKXCNbie0dQ5n6sFZq3UekkuUVjg==","signatures":[{"sig":"MEYCIQDApaxewZWuz0vPwkr9H9EDy2azY+K0lpMPpM8i5/Y86AIhAJv12C6tlLkwmZyV6l3gQuq92QJFsSFuGiQcVl47Z+MR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260715114702.9e526fb","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":353699538},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"9e526fb491a4f8388a563eac7eaf321f539e0dc2","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260715114702.9e526fb_1784116125766_0.3617833687180012","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260715121027.1aa5809":{"name":"remoteclaw","version":"0.8.0-next.20260715121027.1aa5809","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260715121027.1aa5809","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"dfc785305160a43299a29a0da803d1346b695658","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260715121027.1aa5809.tgz","fileCount":14665,"integrity":"sha512-4ZsBuBbqI/WEsMmz4EPUTS98g0+ujsSegKi/CbxYoXNnTi/A/VZMSak8nTiRfI7aBuexz9ftZkRnWruWB+Ezrg==","signatures":[{"sig":"MEYCIQCOnJap9PHpMo5nPqpUpIf2YerMl7EHCm9rSOQC4eQgFAIhAPNlPcrKzdXzOZAhKPOncO+wu7nmXSunQ1mf95TM9gTt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260715121027.1aa5809","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":353699538},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"1aa5809eafda9d9199d1f432a922ded767986ee9","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260715121027.1aa5809_1784117531603_0.49648716877032406","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260715123042.fba6160":{"name":"remoteclaw","version":"0.8.0-next.20260715123042.fba6160","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260715123042.fba6160","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"296c06cf191fec01da2eecb8cd4ee61969fbc3e2","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260715123042.fba6160.tgz","fileCount":14665,"integrity":"sha512-vU9J6p+CvUGKOtBYVb6DHHuYVDuBIRduciiUe3o/nvZWJotkpiLjacFxtcLfjzMW38mMXDKGRU96cox9MkrZjA==","signatures":[{"sig":"MEQCIBoEb+s7EhrKz94tKfR2iIMUERO5bCE+tdg0O3cNLdrMAiAX62XnHrdRv9Twol9D6A0NU6HYzoirx97OyOv66NQ45w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260715123042.fba6160","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":353703031},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"fba61601b1118e069d74ca73a09ab77a3c07bcfb","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260715123042.fba6160_1784118746360_0.9084717273225864","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260715135646.1e3daf5":{"name":"remoteclaw","version":"0.8.0-next.20260715135646.1e3daf5","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260715135646.1e3daf5","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"3caa1a451953cf939e0b51447524a7154f14b0b8","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260715135646.1e3daf5.tgz","fileCount":14665,"integrity":"sha512-A0hkaHSBOsDSgetLwPWUQERSWnCUurWZ4LNao14wmR9QYuTCGycpjz41t9VM9HM1HqfJ19FxSeD1Kg7Ja99TXg==","signatures":[{"sig":"MEUCIQChg1KgKNw5w3udRUXmSvfp4pVLoOiza/7lX1n0jaRXBAIgD7rcPLabEuH+up6/UO3jANY80GXmSDHfGLTiRsr/wbE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260715135646.1e3daf5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":353699538},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"1e3daf513d535a49b33e8dd1c37e26d496c45472","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260715135646.1e3daf5_1784123889405_0.05823268434163209","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260715145215.18ddc8d":{"name":"remoteclaw","version":"0.8.0-next.20260715145215.18ddc8d","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260715145215.18ddc8d","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"609a8976bde55b1d097e9749f6f85d1727b131b1","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260715145215.18ddc8d.tgz","fileCount":14665,"integrity":"sha512-HnD7qehqJsx6deO3U4TYL6OLuhDR5d2820Xp2zfA40qU39NlAg8lBB4r9xrQ+JGvgRai0XP/6V2h3KKPnR5IiA==","signatures":[{"sig":"MEQCIHhEfKrJyDqUWefJBVj0LCluHYhVNINxlzDWoC6oFOLMAiBa/n7i9nBU4xNn9IGbRcGWVSHOAFY9iG+Sd+muYILM/A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260715145215.18ddc8d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":353699340},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"18ddc8d3fad055a387841f04c7170881a2c8b09a","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260715145215.18ddc8d_1784127240778_0.7284081798286737","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260715154434.0d0bb75":{"name":"remoteclaw","version":"0.8.0-next.20260715154434.0d0bb75","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260715154434.0d0bb75","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"5e104c434b9ac14a3768c74fea6a6c97bb2b6be8","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260715154434.0d0bb75.tgz","fileCount":14665,"integrity":"sha512-8r4b+CEw9K7WE6In811LcTxYxPV3M0qIpcbyMKQ0zvW7ecGIowAEqXgNcs2RViDv9WLPUnTtyFQO/YAn3MrRlA==","signatures":[{"sig":"MEYCIQDD29GwAURGwPmmFCPUoqfCVYkjk/wVwWB0Fxszp67RNQIhAJpiIGsFDBiNCwciAEsQHcdOIB3IM6y0ZGqin1tNhUHM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260715154434.0d0bb75","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":353703756},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"0d0bb751ae6019245d57643faf71eb08eb18c574","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260715154434.0d0bb75_1784130377980_0.7266800654021408","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260715160018.21c3e2a":{"name":"remoteclaw","version":"0.8.0-next.20260715160018.21c3e2a","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260715160018.21c3e2a","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"abe64945c79bd82a0878ec8467927ab5ef6a050a","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260715160018.21c3e2a.tgz","fileCount":14665,"integrity":"sha512-Yyb5NwCvKnq/MYHq2Sq1/YQCzpprGkfsc81AjcgbgGpyXFbCmlwFExCw5dgzDT9Guw79I3abLWBOYwf0wuyy6A==","signatures":[{"sig":"MEUCIEJKMtfNd6ErScdayiNRVb+QWcyps/nD6GkiYhi/NuYVAiEAvktmqH8oTOP7YUs9UUeCJdSnkvw9w01F4CZAlm7yGZs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260715160018.21c3e2a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":353750005},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"21c3e2ac1540d23f9f796e8122c13ee43ae488ce","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260715160018.21c3e2a_1784131306717_0.703979978859471","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260715174755.606b8e8":{"name":"remoteclaw","version":"0.8.0-next.20260715174755.606b8e8","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260715174755.606b8e8","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"3910ce51e75f685ddca991eb02720d45b51c1b2a","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260715174755.606b8e8.tgz","fileCount":14665,"integrity":"sha512-okn7fnPEezXxD+3y/iVb/7XGlUIiQIXfwMksYkAsG8datpiDilkUyPKlkWhrPHgfY9EpfWa4X0MfmUhvIeEGMg==","signatures":[{"sig":"MEUCIQD9nO6EQflQV/0QZlxinHjlNlBg6RbfO47awn6bC5BDjwIgQtjxTlt/QKjP4+AeM83Nz86ZaEniqSzB7VvBA1UwK3A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260715174755.606b8e8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":353740144},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"606b8e88ee2598967bdc860ece2e59438ef93d23","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260715174755.606b8e8_1784137778926_0.08219268988472272","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260715192921.bedd005":{"name":"remoteclaw","version":"0.8.0-next.20260715192921.bedd005","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260715192921.bedd005","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e70fa357da6f6ee602fda6547c75057af383063a","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260715192921.bedd005.tgz","fileCount":14665,"integrity":"sha512-3NUrvQWbj6XBInBGrBNGnDvQeH2M7mK1h8sxHyFzOCis5DMV03WexbZa6mieByxfLIq60EcIpoZ4Qeg1EDZ8Ww==","signatures":[{"sig":"MEUCIGkGKjKxIETF89UmIb9F27kyoY1AUoIdYQgWBmqvJ7WNAiEAl98fQWHJW7OL5u+DQH7Bk4tCMK/ND3TbncWD4ENL+A4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260715192921.bedd005","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":353760040},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"bedd0053fcb3bc4479a0e2ec19ff2543a54051e5","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260715192921.bedd005_1784143852248_0.4540392367671151","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260715194011.5dad076":{"name":"remoteclaw","version":"0.8.0-next.20260715194011.5dad076","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260715194011.5dad076","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"0935c0156911e171ea8869a754ee76549de3635c","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260715194011.5dad076.tgz","fileCount":14665,"integrity":"sha512-gy9yTpvwkcTHZXbL/hP5WyeEUXo0QL6V8jKMEPGVA4RdO7bmOi6PQTshnncCYIc9L7bQx81qTSDigpVCfNoLWA==","signatures":[{"sig":"MEYCIQDdcVeGgwiaqMOj96DrM59C0zPF15RiEqc1So7zFTfHNwIhALVU4VWuj4tmx6PIo4pLLmkyeJiMLTNpdNFbDpyq9/L8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260715194011.5dad076","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":353760040},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"5dad076e8cb6f4dc4817d4c52629518f36888d8a","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260715194011.5dad076_1784144528423_0.794097206375264","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260715201830.c59bb86":{"name":"remoteclaw","version":"0.8.0-next.20260715201830.c59bb86","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260715201830.c59bb86","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"87994c93952fd8bc2e93749ed1e597a9ac755035","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260715201830.c59bb86.tgz","fileCount":14665,"integrity":"sha512-LjMf5+8DRKvDCdB8nrBf36zyzx1fY5CPZUcH8SIoS0OLWLrjmIG1hMORCC2tz+NVHPUUkaM0tFQwDHzIONnzvA==","signatures":[{"sig":"MEUCIQDfLa2JR2Kk7fmeDEzJuAIZIg6rSQiE9GrrWGY5+m9DMQIgM8Orh0SJKucpT9aFuMrUfXO4lWH424CeyGTLmQvrS0g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260715201830.c59bb86","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":353760102},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"c59bb86e7f9a74ac72a1b39b2115a8151c0f9d66","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260715201830.c59bb86_1784146813910_0.4584494681746021","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260715204715.5f20cc5":{"name":"remoteclaw","version":"0.8.0-next.20260715204715.5f20cc5","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260715204715.5f20cc5","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"08b48a60b9c4e7a28cc1251597cba1ed34756328","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260715204715.5f20cc5.tgz","fileCount":14665,"integrity":"sha512-WU1JmTqQoI1DB0TK4I2Xieo1JYnFPXwpi1HL5Rtq3/vzGO13BFN0ph4uQIa+xZVz/H0GPvJHlY6dfLwDzceVMw==","signatures":[{"sig":"MEQCIC2XcVUG8bnWf2So13sWJGIdpLr25Vnd7ve4P3gwD1CzAiB5VPafveRzVk85oLmSINO0jHj9/EGVAftuj+r/FkrD/A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260715204715.5f20cc5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":353763708},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"5f20cc5d398e7d92bc98a52701967b5e65545329","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260715204715.5f20cc5_1784148543631_0.13892102589506972","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260715205821.ce00e92":{"name":"remoteclaw","version":"0.8.0-next.20260715205821.ce00e92","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260715205821.ce00e92","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"2839f7d12a0e39044c102be71b94d93499a07e91","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260715205821.ce00e92.tgz","fileCount":14665,"integrity":"sha512-jI5GbGMdTtDgHbNBXbjbJVS27CVLPBZw830hTL2lXFHaReWvwph1IZNBIoGm+Uz78UbNl+uZfnMhCOdruBKUjA==","signatures":[{"sig":"MEUCIFUq35ZKuXxTiu2PrGtXue0pIRUnPOoPt8br/wZUMwUzAiEA3aSVoJI6FDzrKn6T2EXXFudh0Cx54+Rxi1co303+UX8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260715205821.ce00e92","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":353763708},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"ce00e92c65c340ee09bd548da56d66301eaec4ed","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260715205821.ce00e92_1784149205126_0.20781911734923653","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260715210912.9197556":{"name":"remoteclaw","version":"0.8.0-next.20260715210912.9197556","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260715210912.9197556","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e3dc8a1976e99b8e6730c8faefcc5de80a46ba99","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260715210912.9197556.tgz","fileCount":14665,"integrity":"sha512-aIfMqu3Zf1r/FYzKOv93lubv3lYTGPWEdfqIovdrS77ON2Ig8oDyAuXsMOcwPZwzfwjLo9FxVNiBdvfnICvHbQ==","signatures":[{"sig":"MEUCIAZ0haQ4x54onvgfCKdyA4FNtyZREbxNbSgBdLcpcDzOAiEAhUtvkAi/RNXxpAWlpB1UJ46LjOzyfawqYiaAQKMmmfc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260715210912.9197556","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":353766019},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"91975564395b5b2c1623d3e9c5903ea6c3ac6bbc","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260715210912.9197556_1784149861234_0.34427870682454165","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260715212031.d9dfa49":{"name":"remoteclaw","version":"0.8.0-next.20260715212031.d9dfa49","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260715212031.d9dfa49","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"86c5fadd4e192b149f42f7f5769553150be169e6","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260715212031.d9dfa49.tgz","fileCount":14667,"integrity":"sha512-v5bvNXF2bUVXEvU5qwhs4T1Z5HXE3Q1GTQsOykbA6BCbEAXjryT1FQ9RiZNS4ZuvyBBViU/BDzGb4t69b9sKog==","signatures":[{"sig":"MEUCIQD8XEpbitIJOQCDnUZcRpUnQOsmyLyh9s9W9jHUV1xYFgIgaFD+l4eTYRX8w72EjyHAFdmp2s67T1lTA1weuw+O8+A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260715212031.d9dfa49","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":353776397},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"d9dfa49b32aec2cb1817ae10abf3d574fecc75d2","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260715212031.d9dfa49_1784150535114_0.2630909311436802","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260715213125.484ff9b":{"name":"remoteclaw","version":"0.8.0-next.20260715213125.484ff9b","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260715213125.484ff9b","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"16039b253a3ff2f3ac52a29d298b57bf8b54c360","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260715213125.484ff9b.tgz","fileCount":14665,"integrity":"sha512-g2vSYHCxucc/couhVL8gbZMApfRGMbeHZb6pWWJsBUqD43yqPil7kLyPtSzyesdGzkrGSl4Ert0z0L6QaZYDoQ==","signatures":[{"sig":"MEUCIQC3P8zYcxorISwSdr18Igy2Z7lRp0DAwaOg1+fAeFSEaAIgbkYCVZrN2iTQA700OJ5s19JfsVNaDKxWAIikCHdEMTc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260715213125.484ff9b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":353766631},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"484ff9ba7b173df9245729543af85ea1bff8ed4f","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260715213125.484ff9b_1784151191547_0.72284245421677","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260715220045.548d7ef":{"name":"remoteclaw","version":"0.8.0-next.20260715220045.548d7ef","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260715220045.548d7ef","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"aba172a5f08c3c8d1d95eed2c4cb368c543fc531","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260715220045.548d7ef.tgz","fileCount":14665,"integrity":"sha512-y58WHsu+Df8fVAaxVc6bz/Kc174anUgiO2HBks/LEBMe1epMq4gTzDO4Hg81hX1UudAjkJ7Td5jsC2FtQjA7Eg==","signatures":[{"sig":"MEUCIAyKOrT4NneGAXroJmVd+MyDjpszO6tvb8OEBSDFp2jaAiEAvLU1/h166XSY78agos/lj/Kd/lEfrmJPCtxZB6rzvIU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260715220045.548d7ef","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":353766631},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"548d7efe10c4bb194838a630b79359a465c88357","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260715220045.548d7ef_1784152936156_0.7810283337053134","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260715221214.534cc1c":{"name":"remoteclaw","version":"0.8.0-next.20260715221214.534cc1c","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260715221214.534cc1c","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"a6d7ae28302c6823fa537246be27f9cfddbb97d5","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260715221214.534cc1c.tgz","fileCount":14665,"integrity":"sha512-cBnWkIvQAvp8G8Tpk1Ke/9A1+UkEoaDAnGW6AbOmyxlA+z7JXauYP+/3CSrO7Bkt7Zs97jvgakyHdQJXHfKdNQ==","signatures":[{"sig":"MEQCIBF5UB/UOkkMZaJBg6xVUazWDeZXNtO4GFe1hv36UmPRAiAh471JVEBJndFFauBiDtmOuQO3hiGEN8OAHvX1xBg+AQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260715221214.534cc1c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":353769058},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"534cc1cf8022f1acf2fc7116c36a46e1fa8a46f0","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260715221214.534cc1c_1784153641775_0.012611977318338186","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260715222611.7c3a23c":{"name":"remoteclaw","version":"0.8.0-next.20260715222611.7c3a23c","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260715222611.7c3a23c","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"0e6dcad275bcbe26f6b36338797770842e8f6faa","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260715222611.7c3a23c.tgz","fileCount":14665,"integrity":"sha512-1WfFk4kWxv7RGPZVJQ0Y1E5Dn+sJWD19Xz2GIV1VQL08+KOoUHBPUecDk6dW+TU/6X79MbWQS5agDJN5Pu5x2g==","signatures":[{"sig":"MEYCIQC7sLUnGtEBcFCfPfbbUexEVWBS4KBFqNtsO7k+mUzGHgIhAPh9DNEVYznjybF6bwcLjfwBiW5Cb3o9q9fFsbi/b3ue","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260715222611.7c3a23c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":353772239},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"7c3a23cd066b7c58b81e07005ee7e5b2ce1b69eb","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260715222611.7c3a23c_1784154471081_0.7468359677507057","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260715223737.44e58d6":{"name":"remoteclaw","version":"0.8.0-next.20260715223737.44e58d6","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260715223737.44e58d6","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"6d366d1f26e0e9c5ddd2f4eb2b40ef804b4b1664","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260715223737.44e58d6.tgz","fileCount":14668,"integrity":"sha512-q2//8Q0JeuIcalNs52ujV2OG46bxeVg8FWj5ZuN85mLMC3AGGDe/mJgiV/T43bYxq40Nm5zmCUYQfvPrLTzotg==","signatures":[{"sig":"MEUCIQC4qVZl2ghqa+pTC3c4lMQsMWR3JwbS9x1Xa48Ot5RW9gIgMsE9dMgtGQPsYTJujtJ+xrqiFJ9GuTZa92kfdDowppQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260715223737.44e58d6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":353842664},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"44e58d6c70d92758188e2690dd294def48f35d99","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260715223737.44e58d6_1784155159925_0.03930960052872545","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260717080454.7b96190":{"name":"remoteclaw","version":"0.8.0-next.20260717080454.7b96190","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260717080454.7b96190","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"815d48936691d73cf6d3573902a043d744f9fc29","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260717080454.7b96190.tgz","fileCount":14665,"integrity":"sha512-XzuwOLYuBtQr4tuJTiMR7QqcA7YmDXTgLmwHhhXjAYRFaiggxnV9n/0YIssiyBW3A5E3M/el4uc2ygIuoarLiA==","signatures":[{"sig":"MEYCIQCOGCeal7WWEECtPs9e1A2myKM1954tj6Hu99ROjbhyVAIhAJL2L0Figv3laL+EhP1obrSqBqWT2SwKXgc1GtQmd23f","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260717080454.7b96190","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":353832786},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"7b961906621346168881d629fcb31591986d92ad","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260717080454.7b96190_1784275597495_0.45967573231385295","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260717081536.1ef15b0":{"name":"remoteclaw","version":"0.8.0-next.20260717081536.1ef15b0","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260717081536.1ef15b0","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"8caf59bb8a0eda202a0ea54fe2b3e127b1eba7d3","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260717081536.1ef15b0.tgz","fileCount":14666,"integrity":"sha512-AyPcV6k1bDa8h4KizPkt9Q7geejSuSLG30eAcULE0/wAgwmzpjo1twf9V1UlZbOcMXeNAsnIZ+enb42IOpIHDQ==","signatures":[{"sig":"MEUCIQD4SFBXTKA0zKL6/xYYn2MTuCuFo5uByBw9UEuKMtxZtwIgFPNqT3NYhFiu6vhz8NKQiRUD3CwkqjGLYhJZKC7ZuMs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260717081536.1ef15b0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":353841764},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"1ef15b0db0b7d2d49cfeb3600d53564aa0d0b0f2","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260717081536.1ef15b0_1784276243221_0.46746391207894944","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260717082658.f4fb5fc":{"name":"remoteclaw","version":"0.8.0-next.20260717082658.f4fb5fc","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260717082658.f4fb5fc","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"cc9cbd4f069ad89707cdfb5e0eeb1015ba9ed7cd","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260717082658.f4fb5fc.tgz","fileCount":14666,"integrity":"sha512-TtZDb2erxq1x06dszqGtOs33FxawS6D5LdAzyTPFrTr7XiERS3xiYLUmXBXlrFBPlaK4mema0cBr02dA9pk2VA==","signatures":[{"sig":"MEUCIAM3hY7Yd+iM5F4+rPuRbp9Nxq8mjH/ledcikZtIy2zCAiEA60ibpYlDVEwoA3pyV0CXGx1Ucp3v/SgYT2JHLcp37s4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260717082658.f4fb5fc","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":353965260},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"f4fb5fc179ed271d3e20532bb0805fba9afb1ae0","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260717082658.f4fb5fc_1784276919684_0.3529602322675629","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260717084926.21a60f4":{"name":"remoteclaw","version":"0.8.0-next.20260717084926.21a60f4","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260717084926.21a60f4","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"7e37e6cded8e6e9bddc20d6b35829072f0925562","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260717084926.21a60f4.tgz","fileCount":14666,"integrity":"sha512-GIpB1NhxwmXFMvLFHW3aO+hXrZ3/VIQaxHk3x9slj4yBS7owMHckOybQckJ2FBEa26Epx4rJWo+OSb06NohXvQ==","signatures":[{"sig":"MEQCIAVOsAWtUEXXUMQd69cgraAgG3GeD5SPokkfoVVkA9W0AiBhkw4lhHKzREG43gD0DktPnQ42Rcx+do2DH2pasWX3RQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260717084926.21a60f4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":353968091},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"21a60f4d625037f877b5a20d9e4583bb11c43880","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260717084926.21a60f4_1784278269943_0.3488158169550146","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260717090029.e0c544d":{"name":"remoteclaw","version":"0.8.0-next.20260717090029.e0c544d","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260717090029.e0c544d","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"53c5a49c300e02d4ddad12d89c17a424c312cc09","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260717090029.e0c544d.tgz","fileCount":14666,"integrity":"sha512-DWsafbw8/zRAmIG+FSNnT9qxExRovze8SCvuqKZMayyQ0B20qrtMPWbLJFBTob85A1zs2wCB9Nltz0VqYC4Ktw==","signatures":[{"sig":"MEQCIFiJI2DmzSLWN+TsGAlA5T+LxotHrEWucEzVViTMp+KXAiBFLGjNmtVOyFGwul9nlcXAvGc+u0+U35JNWuczHg+0Xw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260717090029.e0c544d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":353969006},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"e0c544d286b2d9c1d791157c38690968b1478031","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260717090029.e0c544d_1784278935649_0.927370028586082","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260717091125.1d63847":{"name":"remoteclaw","version":"0.8.0-next.20260717091125.1d63847","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260717091125.1d63847","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"ce83327263f6eb4c5d3160306f6314a4cefdc6f7","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260717091125.1d63847.tgz","fileCount":14669,"integrity":"sha512-QBtBw7MwxgCJBDcaqVScuntqLPZCPdX7zOOMNaDAarICLr15E4eYTw0ArzVsKe5nUQh1hAH/X7hmEd8sfa2V3g==","signatures":[{"sig":"MEUCIQCd1MfUr0DL0yFEQo6gNBdQdTYNDMj7oB4eRDbdttDNWAIgCJXtNInPbWn4HYilfjpGwzmLfA4/B4FnyMiJYeC8F2Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260717091125.1d63847","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":354026321},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"1d63847cdc7ec00d2307dca9e059ff395b463344","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260717091125.1d63847_1784279591774_0.5924009447050507","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260717092151.c37b286":{"name":"remoteclaw","version":"0.8.0-next.20260717092151.c37b286","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260717092151.c37b286","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d659bf282b49b668af729533e859482088ef5d72","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260717092151.c37b286.tgz","fileCount":14666,"integrity":"sha512-FHAbG5bDGvH/LylW+qGduLxrzMGPLhRvsyJfcI9vORsB7cY2pFPNNCUcJRACfRqwqoS2e/E3qaCD7Rpn5nke7A==","signatures":[{"sig":"MEQCIHpsMDlfeoVLTTm+st1YbaL3SNBJPvGapQhBGyjSc6McAiAzebbhgRWkvzTRzoaIPDO8G+VwP3NtDzVinOAcWMF83A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260717092151.c37b286","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":354045427},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"c37b28604651f13d7b4147711a40d8b8c7078ae4","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260717092151.c37b286_1784280217832_0.6741073628797136","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260717095651.5cb16dd":{"name":"remoteclaw","version":"0.8.0-next.20260717095651.5cb16dd","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260717095651.5cb16dd","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"166602b0d76ed3dd73bc58a69cf88b92fcfb27f2","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260717095651.5cb16dd.tgz","fileCount":14668,"integrity":"sha512-vavePOChquYXkboxSZAyfcTVF2k208aaVRNjI+TkolnhxpDsKhBDeRNm8WEfVZqqowPKe+4wbinzP4nWrIZS+Q==","signatures":[{"sig":"MEUCIQDt6Q27fbTwfddcej/RItRpZDKt9RT/WYmCxmHNbDdWvQIgJv0O8O4EuNdpXF9Zmpj+9LavjxLNx2LMo7/A3DAmT/k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260717095651.5cb16dd","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":354045654},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"5cb16ddb419d6fcfc9c7056b2f0994880dbdbb66","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260717095651.5cb16dd_1784282315106_0.7623834590752678","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260717100743.a015ebe":{"name":"remoteclaw","version":"0.8.0-next.20260717100743.a015ebe","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260717100743.a015ebe","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"44522067d0614f17c73c45acb615508edf4301dd","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260717100743.a015ebe.tgz","fileCount":14669,"integrity":"sha512-EGf07Ec9A1JzA0zxG+H01acy2MOCHs9ZhI0zBhEuzgBfJu7j6vk4FqN3sGkeM9rUUHIYcLSETsbZh99Y5QvtUg==","signatures":[{"sig":"MEYCIQDCbyzOAcZ5D4vxe+DdVWPdw9ePNq8vc9eiKrMbp59negIhAPhiCL/0OCR74VOizLP/NMXm/gKkw1rtwol5jAc8TTmI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260717100743.a015ebe","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":354135540},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"a015ebea2f87ac3468e8154526fd7ae4267a7e8a","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260717100743.a015ebe_1784282969404_0.7204104348270597","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260717101827.cd4ec95":{"name":"remoteclaw","version":"0.8.0-next.20260717101827.cd4ec95","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260717101827.cd4ec95","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"3cf0df4dad32c18ea2437de710ab82d2cccac17d","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260717101827.cd4ec95.tgz","fileCount":14667,"integrity":"sha512-yoNy5Qn0g0L+TmWdl2z/+FhOAYFOBFFTL5GBAF691WsflGqxdy/hxy7SseR/3LJT1fp5rCqEb3k9Iprrrmw4Tw==","signatures":[{"sig":"MEYCIQDGSAuTdP/JzmOv6SIhRUXt9sID7eYwUJ6gkqyI/wKdyQIhANwaTFXOSoACaxutZ71NKhcLqocYWEhcws3dWaGlyTIC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260717101827.cd4ec95","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":354133571},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"cd4ec955c000581450a2edbeb0cdbbbc72eae252","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260717101827.cd4ec95_1784283606794_0.7448626234085494","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260717103702.4ce8e21":{"name":"remoteclaw","version":"0.8.0-next.20260717103702.4ce8e21","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260717103702.4ce8e21","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"856ab5b7f1e0d4298456a6408c08cd2399290fc3","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260717103702.4ce8e21.tgz","fileCount":14681,"integrity":"sha512-Shi6n14dCUbt+F9qgdXzUSFzsBypQgJCxcPPyS/Wctdr/Irm/tUP6+TvAuvlio2v7V0T7TE8RqgjUeG6LnsDfg==","signatures":[{"sig":"MEUCIH8dA1wf2EfEl9/g4aGr8wS5u3DBW2XanRmp4DppajYVAiEAmJLW1xJQA2jbtczgCdFx8tATzZTrOBMyUljpDNwp5rE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260717103702.4ce8e21","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":355292732},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"4ce8e21ec68fccc2aa536e5694fffb54e9586a71","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260717103702.4ce8e21_1784284728986_0.0984733256209569","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260717111358.e9670e4":{"name":"remoteclaw","version":"0.8.0-next.20260717111358.e9670e4","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260717111358.e9670e4","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"705c94acc081c54100ea45e26e47aa8d132d9616","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260717111358.e9670e4.tgz","fileCount":14682,"integrity":"sha512-hEkTUJm9bFVqb1VtvxW9Kj8HAQ9HHxhMOe2tiOaSnY+itlCfuqz2sThz4r0IXaf2OG8paeMs8WX/QCCXo28OzQ==","signatures":[{"sig":"MEQCICmVQD6Ho/6J86EiDfvzKr36TYpSujy6DxC9fiTVSrPEAiACAaXWFL6ahvPz6OTpQ8WYaDPi0HRcLoyDlERm6zRD6Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260717111358.e9670e4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":355293272},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"e9670e4b9fa70ce99a4c379fac481451548182b1","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260717111358.e9670e4_1784286944459_0.43732624569095324","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260717112445.8359c93":{"name":"remoteclaw","version":"0.8.0-next.20260717112445.8359c93","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260717112445.8359c93","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"474013f322b32b7046a235edf3ee9324732d9091","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260717112445.8359c93.tgz","fileCount":14682,"integrity":"sha512-WfNf9gVoNUbFvq+jKEagVpJFFPUZAGHGnGUGo3ppcUUv1fN43mUKaMc0YarkG4kg3fH9GNgrxjWWDcoBIhdZLA==","signatures":[{"sig":"MEUCIAJ3lUYDuINEF1NNR0IBpzJabdc60JwO0PcU8GQytsJIAiEA3HwJTeQMf82TVdFrD5mx5OWmKLfO5AgRc3qgqC20940=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260717112445.8359c93","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":355293272},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"8359c93b89bd7335b7968fcc8033ba30609d95e9","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260717112445.8359c93_1784287570205_0.20140207344320116","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260717113512.4485d01":{"name":"remoteclaw","version":"0.8.0-next.20260717113512.4485d01","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260717113512.4485d01","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"88632abcb35a51f109e17a815757a43a26b8a112","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260717113512.4485d01.tgz","fileCount":14695,"integrity":"sha512-VrOXYWsvZfIOagTxKCvb2OQYyNv9/5BDYM5iSiwjZHsF5x+PreKS23BH2xc0lBgUfpoMw4GIgPMRPzvV9t6ojQ==","signatures":[{"sig":"MEYCIQD869nkSMhhfAwHuIm7wy/sz2Irn+tQo0wuMa+YG95fpgIhAO2cxEbi0xKOiRBau5z0jJEyk3Rhfg0warYNs9S0gREn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260717113512.4485d01","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":355457585},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"4485d019113b55138aeea86cf6d74661b25e13fd","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260717113512.4485d01_1784288215502_0.8104617728439591","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260717135550.28290e6":{"name":"remoteclaw","version":"0.8.0-next.20260717135550.28290e6","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260717135550.28290e6","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"9f77ceb729cb54ef99e938ece8a038da5f0a0ba7","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260717135550.28290e6.tgz","fileCount":14695,"integrity":"sha512-8Y9PPx89zu0/QhaW0WOIUF0gie214mttbBw83RWHoBf01kQd/K7sUZxTmzLzW5zfPeRqXtKxNF5/GBp3S7h1QA==","signatures":[{"sig":"MEUCIAidcE0hRTh61DJiRQIuTiOjIBV/VLH3koByGcWHJCdZAiEA/z/5BnF9Ax59Ibtls03ZkwbqyWgIVBBTE/NDK7Wq7VE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260717135550.28290e6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":355907061},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"28290e65775dbc76bc1d189f2f2f0f71e9d07672","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260717135550.28290e6_1784296652780_0.45990978100338986","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260717143348.5a99753":{"name":"remoteclaw","version":"0.8.0-next.20260717143348.5a99753","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260717143348.5a99753","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"cd4b3b0e57b8332b7da26bc866fb738de02aada3","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260717143348.5a99753.tgz","fileCount":14696,"integrity":"sha512-AFTuHSDKmFs2I23/eob+bFVMb51KwMzxA0PVK2/K62dM8etxRn/J3J+tztKyOq7XodZ0f/5nuCgEuafyYQCmvQ==","signatures":[{"sig":"MEYCIQCujnT8P4zb7RXgkWkoNZ6gyNovT8aiqRMTgGFXO3RpawIhANavg1fnksE81kAw+ASl7NLHANkH+FWSeYl7VJGWdPz3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260717143348.5a99753","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":355907431},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"5a9975307caf45145e096e43f5ed7bde4b08dedf","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260717143348.5a99753_1784298932231_0.7996129054281729","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260717152336.01074ad":{"name":"remoteclaw","version":"0.8.0-next.20260717152336.01074ad","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260717152336.01074ad","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"18fb554d8783430cbe115fba1f287d9f8f5aaaf0","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260717152336.01074ad.tgz","fileCount":14696,"integrity":"sha512-aKKMuoZuSFyr5ZbrkqEHAgpTRGJioaQpJ6nOSlH9SJD4YemLBhMJdTZq0XD2HBvDpAWeikZYOqVngEOL8mzb6Q==","signatures":[{"sig":"MEUCIQDFTiKXCy8OWfErAJEQULVb5Fgv2zXbwxvFpBnoV8OORwIgKJjyPFWRhy3SqAfljgiCLxr29eXiVJIwVvZLSYgYafQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260717152336.01074ad","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":356099978},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"01074adc84476b54e84217c8b57e596761b85ca4","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260717152336.01074ad_1784301921635_0.7218985076114877","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260717215202.01cc81f":{"name":"remoteclaw","version":"0.8.0-next.20260717215202.01cc81f","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260717215202.01cc81f","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"7d3cf1e4067d730ebaa456c4e26b0a4df20d1755","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260717215202.01cc81f.tgz","fileCount":14699,"integrity":"sha512-HdAGXzbw6Ymua40ssIhlt2GuWaGTbtk0thhWNXUJGXmI4jyIHIaUU1hfAsWDbZeyDAvnsjENkMHIt6mcV+t/0w==","signatures":[{"sig":"MEQCIDmJJPX28iqPGuMBno0cUMzB7clnrCGdrRKvTdyAYLZdAiAxgXrFCeV2vOYbURp+1qmsHOXGxQeiJ2V3MdA6KAisAQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260717215202.01cc81f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":356112000},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"01cc81f89dfc4eb93733e21d5fe2e0961282a279","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260717215202.01cc81f_1784325228259_0.7996289032380202","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260717220252.73af601":{"name":"remoteclaw","version":"0.8.0-next.20260717220252.73af601","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260717220252.73af601","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"cdbd087a428ac338eae944deaa8f1e74d89d2f7f","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260717220252.73af601.tgz","fileCount":14696,"integrity":"sha512-yyGxy5TUrr1ZFCL0V4G9sJPguRaxlH25OgCZF0VT4UJjCPZXcyQDVXyKUDv3vPXUc38SXlvKXXJn4mKn4TYWwA==","signatures":[{"sig":"MEUCIAwEsyh2NlQ+iyIF4cVV8xarni0OH4La6KqGydAs39wKAiEAvQZRGpfjGbqT90Yq/p3HT4ozhEvWVeOI4v85652Z5Gk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260717220252.73af601","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":356107712},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"73af601896e3e5b4ca1e03ccefe1374fbf32aa27","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260717220252.73af601_1784325876698_0.6314233285443474","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260717221244.6cbdbdd":{"name":"remoteclaw","version":"0.8.0-next.20260717221244.6cbdbdd","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260717221244.6cbdbdd","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"df5cb2567e0ee404b769300d1e8c62ee4333df95","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260717221244.6cbdbdd.tgz","fileCount":14696,"integrity":"sha512-V8KL+MuMeiZm+UysJoXQYjWvPCVO5Z/XmMaYYm3nAWf90CQt4hAG1SLGC8o+W5Tffp/Q8MEsb67V9+OyT6ralQ==","signatures":[{"sig":"MEYCIQDQU88KVEpTG8A/MOIOWXcf9sHSkbH9qKg1d2dhGlc8YAIhAOrBW4CJbi97z6weCnAWqDUtE8GOo8bMLAhW6zWqrgUW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260717221244.6cbdbdd","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":356102608},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"6cbdbddab55e44015eca2fa03cbfcf3e5b6fa8bc","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260717221244.6cbdbdd_1784326470650_0.24479991673482582","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260717222330.c065212":{"name":"remoteclaw","version":"0.8.0-next.20260717222330.c065212","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260717222330.c065212","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e292693d1ffbe976b23a5c53378a30dfb78cb89a","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260717222330.c065212.tgz","fileCount":14676,"integrity":"sha512-6l8NBk8mU5D+JCKPEbUqo8T3V8o92SKlw8Fc5APIK1pXivWFvvBlMb4fqhNn4YhbOVfS4DKVk4usmbb0+9vdAA==","signatures":[{"sig":"MEUCIQDav5SI5gYvXkxbN6FUFVZ3ODLCTHGL3mndF4XVpOzQKgIgbwbhAy0LFuhYhaiSWSmpCfPdqctgcE5TIu5BTknVzWg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260717222330.c065212","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":356116548},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"c0652129c9a5146c9c7b4735ae598a8ad52c28ff","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260717222330.c065212_1784327113867_0.19222553660921737","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260717223424.62900e4":{"name":"remoteclaw","version":"0.8.0-next.20260717223424.62900e4","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260717223424.62900e4","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"881abbf8b60e7128f8c54d2369e62df711baaa0f","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260717223424.62900e4.tgz","fileCount":14676,"integrity":"sha512-eZcTxE3V8fIOnUE9Juq5Ki3uWXt6CY1/vkTAmFLavEjudVawMmfhJIlqr+24Pchmrr0sJjaz2JJlfqd2CgGzZA==","signatures":[{"sig":"MEYCIQDyhpB6KjoPd8uEM0TFUK1X/n6fjuk+D24hieH0fjd0JQIhANTAZCNs8T2QblDeWALa5LrSFTr/S89M3qGBcG0Hz1Vz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260717223424.62900e4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":356117806},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"62900e4b375495910d6e64c3a3b674368929bc4e","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260717223424.62900e4_1784327766697_0.727459653198141","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260717224604.9df8978":{"name":"remoteclaw","version":"0.8.0-next.20260717224604.9df8978","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260717224604.9df8978","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"0ef3a97db12775acf2fed555bbedc57afaddb4bd","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260717224604.9df8978.tgz","fileCount":14676,"integrity":"sha512-Ofvj6KgD1o1uuOsACMrtktRLQMi4VcFgFda+TPe3ymRt25Kj3BIdXVsW7Ooml+rDVUDLCswDpX1CdENLmMGx/g==","signatures":[{"sig":"MEYCIQCucpl20kIOqA9BIRlfSSnRihGavijD8z6QeJNLcQBPLgIhALbxSFIMPBbLLTjBBiSqmihJTpbXkOoAwODiMAhAyCJ3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260717224604.9df8978","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":356116935},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"9df89783f4a9d2bc2bbe6894f963be75e5a6b433","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260717224604.9df8978_1784328469558_0.09921094553762422","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260717225432.9dc3ae8":{"name":"remoteclaw","version":"0.8.0-next.20260717225432.9dc3ae8","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260717225432.9dc3ae8","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e50e766063933a075aca5150696c3160bd15702f","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260717225432.9dc3ae8.tgz","fileCount":14676,"integrity":"sha512-lqhFjAC3yCrsZMEaH2stPUTNUcMfImmQONhJrpRdtgCXID68QLM3qpC7MONHny/NL2odHWowuxNRB3Qw92+s1A==","signatures":[{"sig":"MEUCIQCe5Q6ptn2HcyB0TyrZS8AiFFlvWQUA0Femq9aH3rmOgQIgTFjsfYsAqn2qpTWh/0N8kiiJkrd3NBW0Ed8PX0OMQqA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260717225432.9dc3ae8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":356121902},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"9dc3ae86fb8f513ea2efa98bbfda07eef1a1943a","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260717225432.9dc3ae8_1784328977787_0.15251820167994756","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260717230343.ae49ed7":{"name":"remoteclaw","version":"0.8.0-next.20260717230343.ae49ed7","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260717230343.ae49ed7","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"18cf11c42f1c9e7bf2ca436124454b2688bac847","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260717230343.ae49ed7.tgz","fileCount":14676,"integrity":"sha512-ZMoRIXN3Vd5VOqi7x3WEGm41JXp/zuN+F8Sral10MUwg5xIc3ob0Dcn6D3tBw7/V9rcHP8S9qHGnOKtsBCLuGw==","signatures":[{"sig":"MEUCIEOOGOUDcXAjgmMinJ6t8oY2c9ASqBdNIribLEJXA8HaAiEAtEP5BVzlLfmmG/aT4ofoPTLrvADrNgXho/qCpZbb/Yw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260717230343.ae49ed7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":356145984},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"ae49ed7b262fcb89f3d5b60f94f4ef81a5960dba","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260717230343.ae49ed7_1784329526886_0.9729805037096622","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260717231839.b9b3a30":{"name":"remoteclaw","version":"0.8.0-next.20260717231839.b9b3a30","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260717231839.b9b3a30","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"9741bf0127885059df79e6b0a92eccbfd68b135b","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260717231839.b9b3a30.tgz","fileCount":14678,"integrity":"sha512-WwEpHoFAxtTuyeY25S2xAZrvbYUnoIgVidrL6nJhKa9mI6dkp4cGSDLzW+XVYpSmRyuMzVVD7OLZbX+DSbXK1Q==","signatures":[{"sig":"MEUCIFuDCzlgEmMfMZ0zKMYtKd1amQMnBVGOIdIMme8UjquvAiEAh/+p/o8Q5Hr+lGPLXJtDBBBOYtpcUtWS9RWzzTMj6Ok=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260717231839.b9b3a30","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":356163319},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"b9b3a305289bc0208553a5d6ba77b0928d9074fb","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.27","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260717231839.b9b3a30_1784330404397_0.597711601828335","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260719164220.d2bd66f":{"name":"remoteclaw","version":"0.8.0-next.20260719164220.d2bd66f","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260719164220.d2bd66f","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"cb9aeea94a459512d65509c14e930b7c72e5a6a9","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260719164220.d2bd66f.tgz","fileCount":14789,"integrity":"sha512-8T0Y+zwhlEi+7e+AV1f2ntipqEf/CJ1mGUZN+4c7zHfnEIZx95Z7AcnFurhvnhIsAv48IxJ1Ll4kuhWfxHim3w==","signatures":[{"sig":"MEQCIDQwPqWZMjIg1jEl4YuJUPsa0vrPkNJpNYBLFrL0sh7qAiA+T6oI0ZKaze6bXYwWeFSH5TJiDwjTQPZSdET6AmLG3Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260719164220.d2bd66f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":357525057},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"d2bd66fe6cdd8fbfc63371ec175251aa136c9783","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.5.28","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260719164220.d2bd66f_1784479447894_0.433060583890692","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260722140558.5304dba":{"name":"remoteclaw","version":"0.8.0-next.20260722140558.5304dba","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260722140558.5304dba","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"78034a3cdedecacc7a790b6d857de1214254c500","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260722140558.5304dba.tgz","fileCount":14950,"integrity":"sha512-sSW/geZqpxUcH5bUkIJljFmtqgKpL6yVXefw8rgw/boP7PkponhtU/Gp6WShF1QFXBu4iR5OKQMtE54W24NLUQ==","signatures":[{"sig":"MEQCICuvOuATanIm9J+AY7hVGRRnZQDuE81jxkVhunPjsg1qAiB5aAZIgQwkQk9k8GReoEj4cqJC1sTjjeefIOnQWSzccw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260722140558.5304dba","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":365346290},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"5304dba970d9847606ae85269e155c3a781343d4","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.6.1","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260722140558.5304dba_1784729265509_0.46183029441759316","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260722194345.c1c9881":{"name":"remoteclaw","version":"0.8.0-next.20260722194345.c1c9881","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260722194345.c1c9881","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"6998674eebfa98efe3524cfc9ad92c2ed4e83b1e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260722194345.c1c9881.tgz","fileCount":14954,"integrity":"sha512-Znv/wZsvBJOzHN1E/iYVoZe00qLkT31FQB73RMTGDybRFkdXkdrQxgK91QcmgOv0CTEaGDIF9LJIEh3I/+yITQ==","signatures":[{"sig":"MEQCIEzViTB3iWWWLSjPOqNg6hok1/8MbxSsDh5rHi5vN8QKAiADMYfMvhBQVg8eywKSmqfbEg/VBX5KdFDjeRRWSk2NwA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260722194345.c1c9881","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":365375733},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"c1c98811db0df69122741b141ae9871d672d97b9","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.6.1","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260722194345.c1c9881_1784749549319_0.14348602647642017","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260722203955.c1df89e":{"name":"remoteclaw","version":"0.8.0-next.20260722203955.c1df89e","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260722203955.c1df89e","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"fc9983c6aeb7289218518b53e2c86156d5f31162","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260722203955.c1df89e.tgz","fileCount":14957,"integrity":"sha512-WT0Ka8UvDMlTVTCsp6pRjykp7HFEN4DvdA/9ozrvjbOuLexbqUoF+5L/kcZhUCmTmB1hH7+r/n9vm/HHDfBWuw==","signatures":[{"sig":"MEYCIQD8Z5RH88NtEWo34q3/w2Buu34DU7HCTnfbC6cXXASjuQIhAJYEudisHYayMSCLF79EuQTJTSUzZV+FsCa7mXsm9+xe","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260722203955.c1df89e","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":365385342},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"c1df89e40375ee14f945ca3e2c535578a295a94e","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.6.1","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260722203955.c1df89e_1784752904775_0.23874019891564058","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260722213607.d060484":{"name":"remoteclaw","version":"0.8.0-next.20260722213607.d060484","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260722213607.d060484","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"0c6c04886139bbab6e24eccc643fb38e4aec312b","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260722213607.d060484.tgz","fileCount":14962,"integrity":"sha512-H9eKGzAEPdXgOSlCvgqlZfl+bK57aW23Toe1sxI/0nhP1c6GADrNmuCNWIdY/FJ3LY3QdgxKQEr0wVyiCJ+67w==","signatures":[{"sig":"MEYCIQDd/wc64ELpDuMhsWqvpCUO/SAz4HhqC/xo7jqAjN1grQIhAKJ14Kdq2DUuq0+4+f/7X17Vj2YxrSzERkU7fcEY1+f4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260722213607.d060484","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":365395460},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"d0604848f73ae08a9da238e453031d943d955613","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.6.1","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260722213607.d060484_1784756295595_0.1953711468073367","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260722221455.b56f43d":{"name":"remoteclaw","version":"0.8.0-next.20260722221455.b56f43d","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260722221455.b56f43d","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"276c5d07b8e861fae04bf1a15000d24014c8aaa6","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260722221455.b56f43d.tgz","fileCount":14962,"integrity":"sha512-UA4LlqVYrnLm/JpqQ10f5kiGH4KqfJVxr5kAXESPYyw5FaFSlDnivcTe7ig9KQXDH9CAeAEVss1OfLULheWY/w==","signatures":[{"sig":"MEQCIFoAbyAyOp7NpEID6Uz/vha5sFocaWPH3FWby6udLQ+XAiBt7IjyCvH4o6OS2pWZJUSJux2bkCB7jcpdIKF/M2wb6A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260722221455.b56f43d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":365384933},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"b56f43d8234a85df5a6ad3bdfe03315f6f67261c","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.6.1","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260722221455.b56f43d_1784758616214_0.9509213545094579","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260723054840.349f23c":{"name":"remoteclaw","version":"0.8.0-next.20260723054840.349f23c","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260723054840.349f23c","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"8cf2cc849e8671512da7f5e2979b82010dbb078c","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260723054840.349f23c.tgz","fileCount":14964,"integrity":"sha512-fshb43NKS5/i5/rj5CwvFLjYDoyOFd0Wy/x/iDNRe5leWhX0RCYMQz0zJD2rEf2X9tbsZ6gE5cqIop0thr9l4Q==","signatures":[{"sig":"MEUCIQDNbulpPbI7WbNtGF2aEIM31javt358Jei8Z5H+hOMfpwIgbwtFsyXS2dpwryqPcjg0CCLBm8XoBWzBdPbW4Bom2wo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260723054840.349f23c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":365413507},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"349f23c55badf067f9f4586846ebcd25cebcf471","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.6.1","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260723054840.349f23c_1784785832612_0.7151405834172866","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260723062904.22cefbf":{"name":"remoteclaw","version":"0.8.0-next.20260723062904.22cefbf","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260723062904.22cefbf","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"5ec1dcf87c023cdb2080908f31b17849216010c3","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260723062904.22cefbf.tgz","fileCount":14964,"integrity":"sha512-BNHnX3blcglwBwRNH78JG2R3pCh4KmA9fgvp+PqtajyMNDj6+N06H1NMH2Xb7OWTEMWVVipNoNJVZNMlgGFLqA==","signatures":[{"sig":"MEUCIQCGhudRDzb2cuLTZuX/682GNmmBe/it2GW5wgPZrhG6CAIgV52lLo59mdj3mUj2flptEcoMXit0orTF7628Zt5W1kw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260723062904.22cefbf","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":365416037},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"22cefbf288ad1fa0927403f4da07ea4cf7f86dbd","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.6.1","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260723062904.22cefbf_1784788289149_0.09882170935956758","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260723070545.05393c2":{"name":"remoteclaw","version":"0.8.0-next.20260723070545.05393c2","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260723070545.05393c2","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"7409325c526c7bd708a47169e416f94265c142b2","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260723070545.05393c2.tgz","fileCount":14964,"integrity":"sha512-plDimUbCkHJvkRIc9Qf2bhwAphvsrLKvF4prsBgOiuMUEFcsRL8+2IwmxS9iSUl4cHNKCxFZy3PkEyyD68RE2g==","signatures":[{"sig":"MEYCIQCjAU5U6UgdA6SCzPp8FEqNreLj15lXLyvjlE7kaaQvEQIhAPyxcGus22uSYZSZLw41n7T3D/UqsHj5RLHbtIrvHguc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260723070545.05393c2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":365415955},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"05393c24fb510ae29b65b069a65535e51e21b257","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.6.1","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260723070545.05393c2_1784790450981_0.11856989142394725","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260723072135.54b600f":{"name":"remoteclaw","version":"0.8.0-next.20260723072135.54b600f","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260723072135.54b600f","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"153bc042b24d285505d8f2adf6910616e3dce403","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260723072135.54b600f.tgz","fileCount":14921,"integrity":"sha512-dVhGi0GcRS/07jhMZI2yvrH//KY3MKrDlZVd/Jh/jMbt2f2K4f8ceWPhaeH61xZm4aa7zQa3OyK3G2G7efopiA==","signatures":[{"sig":"MEUCIQDeHyeV+P1Q99zuZm6sTMhe0ptX30xobcYqIJYk+sCwiQIgJMOiAG/9K7TPZsdAuhRnpGTi0MoVW4RcvK1GGfNIT2g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260723072135.54b600f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":365237187},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"54b600fb307c6cc0897f397889465918e93b0565","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.6.1","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260723072135.54b600f_1784791416007_0.7662643670726095","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260723085656.48f3caf":{"name":"remoteclaw","version":"0.8.0-next.20260723085656.48f3caf","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260723085656.48f3caf","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"15688a1ffe60c9708d9d735be96a3de749386a38","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260723085656.48f3caf.tgz","fileCount":14891,"integrity":"sha512-zRLx5S5QT8JOiOMtw8iICO4D4pSDYlADcEvDl+NpKqbbdsTY1ZH5/mccompT39+DF3V8eS/t377VUABoqw9Jfg==","signatures":[{"sig":"MEUCIBT/JaPgs3kwSab4ot7jPbGMt2c770AFPc+HA7Vc2EgjAiEA4ZBikqboPYfNRpRtcCvOFJyeSCaiZGSrYFexkg2HFEc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260723085656.48f3caf","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":359753587},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"48f3caf7115c6e3e7255dc9f98bb729e07084324","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.6.1","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260723085656.48f3caf_1784797127639_0.6092430760564682","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260723122032.72b3fa8":{"name":"remoteclaw","version":"0.8.0-next.20260723122032.72b3fa8","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260723122032.72b3fa8","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"cea84dd7b213692d325f19fa43197cb402d13472","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260723122032.72b3fa8.tgz","fileCount":15020,"integrity":"sha512-zl2fgfp7adSmfXnf9spksZkLoaPhlbClNu1ESJV/JfrxI3/O8a6qs/CJyzsvJaXvPe+F62/RA0NVNaMwSqRRJw==","signatures":[{"sig":"MEUCIB12o8Ft6VO69bFIjDfvHUDEERTjMEpbATwbgi1NKT2eAiEAshzRQpwbY71b/v+HcC1XUAD5P0cL2X6HPFnKUjCWsYc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260723122032.72b3fa8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":362952292},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"72b3fa8983768065290db00e7431d652205fa158","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.6.5","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260723122032.72b3fa8_1784809356096_0.9441394526053386","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260723230654.a2d972b":{"name":"remoteclaw","version":"0.8.0-next.20260723230654.a2d972b","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260723230654.a2d972b","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"8b7a6c7c1e4d91c99693164c93e2ec93caf5b1f3","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260723230654.a2d972b.tgz","fileCount":15052,"integrity":"sha512-nLGaPw7a5m2td2Vbry7DW7NDDMVSa4wyxhvJ+YFizptgofBue1bc/wor+dKUUZ0Sg4iAeQdRdeLh5rmyXF5uPA==","signatures":[{"sig":"MEYCIQCBsnhkaZXpbsmks4Bz+IJJSSb25QWIIzatOp8FIpY2WwIhAPJCLniQU9QBdGNl2Z387XxdOl0kKrhulykSGLfrK2uf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260723230654.a2d972b","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":363644700},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"a2d972b2a4694caa501a9e4ef33dc18b1c7225a2","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.6.8","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260723230654.a2d972b_1784848140735_0.6466999727080185","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260727064702.f7d288f":{"name":"remoteclaw","version":"0.8.0-next.20260727064702.f7d288f","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260727064702.f7d288f","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"68cf4565dbf93a5fdb72705379faef4219a5cf33","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260727064702.f7d288f.tgz","fileCount":15052,"integrity":"sha512-NkYcTsDCBsGdpBPvSZTyKnZSbErrxnq5DdmjLm8RVYYAlhM39OvKwgs9W7sKEsWO6hv4KgUxgVnId5JW+kFvCw==","signatures":[{"sig":"MEQCIH96AIB35weerJKvtjLaBvJUqnqURpfhRo9dVjUjd2exAiAmAFmVXU6AZJS8VVQVMbvJQyxZuhc2hbfG5ozajqHpWQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260727064702.f7d288f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":363643438},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"f7d288f3a284dd7581d50eb83671d35ee157fee9","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.6.8","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260727064702.f7d288f_1785134930621_0.6787075176597763","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260727070956.4ec0cc0":{"name":"remoteclaw","version":"0.8.0-next.20260727070956.4ec0cc0","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260727070956.4ec0cc0","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"a600f76a8cfe49bebf55140061e45c23953b3460","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260727070956.4ec0cc0.tgz","fileCount":15043,"integrity":"sha512-gMqkcaaVo+VD0RRjSQTSqkf/Qd48lkmK1EVnO9P/ECCkAsdRqzT6NGfvrKad0q/KoJwSjdNZm3rf8l+RXihPEQ==","signatures":[{"sig":"MEYCIQCBJN442t8j+X8iOGo8HmWyYKMHAVtRTXANBo9v+HuZ1wIhALWa+8iCIhcUQi4T8zBfQHa1H2P8jPbFPMoBHd1x3dCH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260727070956.4ec0cc0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":363591207},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"4ec0cc02f7153db86632b2c12f1f44ea51a487e9","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.6.8","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260727070956.4ec0cc0_1785136296275_0.42540083471995227","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260728072720.fabc377":{"name":"remoteclaw","version":"0.8.0-next.20260728072720.fabc377","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260728072720.fabc377","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"fdd04819e80a093251f5462525ea4086f33e841f","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260728072720.fabc377.tgz","fileCount":15043,"integrity":"sha512-0a1nld1Y1Lve1/DIET00wLyiJDvSEQZKZNjY+7x3lGE0yBbccYrYJQHZG6TnzZ2DVf3E+CDvoXMARohLihyCUQ==","signatures":[{"sig":"MEUCIQCsBsfPOkU7h7MLiTV3MCoSEq1uOyEW63jw69xb7LXekAIgVs0lE2/Y8MRUmUF11CakTMTSoqim0OWY5hTxdmLD0LY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260728072720.fabc377","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":364185195},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"fabc37791dd9a5797bb1b5f5769fc3cc0179e4de","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.6.8","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260728072720.fabc377_1785223749349_0.1854482506305808","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260728082625.b36fd3a":{"name":"remoteclaw","version":"0.8.0-next.20260728082625.b36fd3a","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260728082625.b36fd3a","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d31fa778e1cd79c94d8b0c39a7a485b7d8a3c289","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260728082625.b36fd3a.tgz","fileCount":15043,"integrity":"sha512-RGJxhNAkVvVoJ+4IIfoRjWn6dS/mCXVdwkRh789KsVzarIE6IPJteR4EKrncARJBu0PzQPpg1L9Brvz4bPLr/g==","signatures":[{"sig":"MEUCIQCynIX/y22v80a+b6ElwpNlFXMt4RdjMUU1z3xR3zIU/gIgcKD4QS6Nm1NeQxN540n574UsIzJe3Df+6AZ687436hw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260728082625.b36fd3a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":364184714},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"b36fd3a97458eeec0bd846ddaf87c841d986fc4d","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.6.8","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260728082625.b36fd3a_1785227285628_0.7065485053906324","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260728093045.7ad812c":{"name":"remoteclaw","version":"0.8.0-next.20260728093045.7ad812c","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260728093045.7ad812c","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"a072f04262b9fafa1edbb1e6b33af44b25350150","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260728093045.7ad812c.tgz","fileCount":15347,"integrity":"sha512-G64eUJlmHXR+x6WbbN/xbj7lqZ0Gh3YmStFJP3kqUWrJW1cqs2qQswJLh6ZgOSFZErhJJbAhcI8UXAapyfdsjg==","signatures":[{"sig":"MEUCIQD3YmGr99fnQcmRaEChdsSPtIsbL+kPHXUF4y+JtFz4mgIgIQVeVdtETjlMUPjb/wpVeh2b/LtWuDs8QMCCjckntgo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260728093045.7ad812c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":373323575},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/clickclack":{"types":"./dist/plugin-sdk/clickclack.d.ts","default":"./dist/plugin-sdk/clickclack.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"7ad812c33e8b8168012b7196f71665c4c40b735d","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.6.8","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260728093045.7ad812c_1785231152800_0.4792778382774341","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260729005201.ce9ad88":{"name":"remoteclaw","version":"0.8.0-next.20260729005201.ce9ad88","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260729005201.ce9ad88","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"fda06a487edb875d03702e39ea8d3c7649799a9b","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260729005201.ce9ad88.tgz","fileCount":15347,"integrity":"sha512-ilzXzhMpqFcg8yQl84NL3jhpG26Sk58osK9JUM53DuAXbV37zaLsPTRcm3vsEVzJvHE6ItHVDtsQHX7uEGrzWw==","signatures":[{"sig":"MEQCIFJFOUys3Qd72/0iMQqAGu0hT4c385iOo7Ug1qgHB0KWAiAQfQASiPS7ZPvCaOyaJt34fZfBUDNR/P8BXKSjfF9YFA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260729005201.ce9ad88","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":373324275},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/clickclack":{"types":"./dist/plugin-sdk/clickclack.d.ts","default":"./dist/plugin-sdk/clickclack.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"ce9ad88c5270537c94ec7db7d57d3d4cc2b2b57d","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.6.8","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260729005201.ce9ad88_1785286432058_0.01882020697871889","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260729010110.5facad9":{"name":"remoteclaw","version":"0.8.0-next.20260729010110.5facad9","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260729010110.5facad9","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"5ecdc073b4c356143f966fb0390b7938ce4e718f","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260729010110.5facad9.tgz","fileCount":15348,"integrity":"sha512-yi8CXODWES85LbFZIdgW0onkBtBicezx//DIFBec5ZRpMcLOFA5/rKsGSnkClQPQS/Rgg3k6D8fIAYIkhEt1nw==","signatures":[{"sig":"MEUCIQDdJ3XO8VHiVxXPygxIYI1sTVJuHOPTuXAR38/wlsmklgIgIiLthEbCY4Mz1UhgED0Q37vr+jPQb1+XK9V3Bfmz0ZM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260729010110.5facad9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":373884843},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/clickclack":{"types":"./dist/plugin-sdk/clickclack.d.ts","default":"./dist/plugin-sdk/clickclack.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"5facad9332669a00038b43f7612889c0360a838a","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.6.8","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260729010110.5facad9_1785286976677_0.5767772760156482","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260729034258.f7fce6c":{"name":"remoteclaw","version":"0.8.0-next.20260729034258.f7fce6c","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260729034258.f7fce6c","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"6c09cce93c5577508741a11609e731db24c8315e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260729034258.f7fce6c.tgz","fileCount":15358,"integrity":"sha512-C+Tfn2vgkxWuFocLsJQiNi71YVrWnlTpc6FqJ0rdwNCqAlwWGCsj/zoWxvOS2bJDoiFCwWuhSYnoIvrvjL9/Qw==","signatures":[{"sig":"MEYCIQDq0SQhXKuP3EKSv/hnxxNAg9zC/kLCdOR97c7PLTGcoQIhAM0ZjXKdZGrcKbhPjBRPn3jV7TQd8MPdj7hC7frqyhP5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260729034258.f7fce6c","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":374086279},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/clickclack":{"types":"./dist/plugin-sdk/clickclack.d.ts","default":"./dist/plugin-sdk/clickclack.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"f7fce6ca476fb63d6fc4322b9b615ec4bc4c0704","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.6.8","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260729034258.f7fce6c_1785296687991_0.8373456459120123","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260729153127.4b26bdb":{"name":"remoteclaw","version":"0.8.0-next.20260729153127.4b26bdb","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260729153127.4b26bdb","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e56927cfdf3db5fba4b810a7702a94cfc565e467","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260729153127.4b26bdb.tgz","fileCount":15348,"integrity":"sha512-5xpKCz60t9nguaZFJb9O+quc7nWPdLMkHkTUxVKrSDDh/i/Za3pBtC3o6QrKMh9JWp0lpBEhFRyhUHku2qc16Q==","signatures":[{"sig":"MEUCIQDi/FRdYFD80tc30zhkHV0fTnbVi+Cr5uVyhafZAXBNHgIgSE4AO0bDAFM6Rwd86/sn00k/ZDsxKw98C0ZMIs47xMA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260729153127.4b26bdb","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":374013824},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/clickclack":{"types":"./dist/plugin-sdk/clickclack.d.ts","default":"./dist/plugin-sdk/clickclack.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"4b26bdb500b0ba29e418e0c8dad78d48dec3d069","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.6.8","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260729153127.4b26bdb_1785339195429_0.3775259430914628","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260730044333.d1793cd":{"name":"remoteclaw","version":"0.8.0-next.20260730044333.d1793cd","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260730044333.d1793cd","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"3d035418748e5562c61516124b3b0080e79f43b8","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260730044333.d1793cd.tgz","fileCount":15349,"integrity":"sha512-6j5aw8RImU+5jMricyGPa0A/TKaB142d0KNu5LdJfNNkxMbF8ESrWfyMGH54OEjAn5EcPfxSOvdZlyNp8Lk0Fg==","signatures":[{"sig":"MEQCID2prjPLYYLlwQtETZ47Yj7tW0FhI9QlbsOVgRzUzIETAiBlkTn9Ia/9KiRHL9aYHYsJZXCznDNvclvO5BCmiyGPHQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260730044333.d1793cd","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":374014977},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/clickclack":{"types":"./dist/plugin-sdk/clickclack.d.ts","default":"./dist/plugin-sdk/clickclack.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"d1793cdf59d298f48f186aa994a30226bbe007f8","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.6.8","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260730044333.d1793cd_1785386720449_0.06142404902792742","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260730045453.b00e836":{"name":"remoteclaw","version":"0.8.0-next.20260730045453.b00e836","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260730045453.b00e836","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"bc0474909a78cba83402744dd7865232e71939f4","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260730045453.b00e836.tgz","fileCount":15348,"integrity":"sha512-cs/vvXGbWyeWGc7jBH/XK7jNR7uOP8Gk9tF1GL22/ZbplOUl8rH42LplUBNWlhJ/NO5azlztvlQ9O6LNGi86aw==","signatures":[{"sig":"MEQCICH/zG0ATq7xznKUHf5mma5lxlil+NBqaIqDX34DiH3nAiBcaKr3B/okrmw8ambhT3z+87XCf5Uq9b19YAcEs3yNqg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260730045453.b00e836","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":374036191},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/clickclack":{"types":"./dist/plugin-sdk/clickclack.d.ts","default":"./dist/plugin-sdk/clickclack.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"b00e836a2480ee76227a2fc721a520d881b77085","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.6.8","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260730045453.b00e836_1785387401306_0.6595012215654963","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260730084522.860eaf2":{"name":"remoteclaw","version":"0.8.0-next.20260730084522.860eaf2","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260730084522.860eaf2","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"45ff34f4b15bda74eab2b2301cbe03e74600474e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260730084522.860eaf2.tgz","fileCount":15367,"integrity":"sha512-Ys8Ck7RElVlVCOwlN8gbZyoPffj1fWUoq1boE9Ui6fHixQMmG1D0LuvAryJ3rLG7nOVYahMWbNp7c4dcaMczbA==","signatures":[{"sig":"MEUCIAu6Hm0hD3HQeVXU+2QksprGvLd2KyaevawY4rhKxANMAiEAvTWNI8n8pZGs/bIndHvvGqXaWlLr7Tz+UcWvo66j574=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260730084522.860eaf2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":375278097},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/clickclack":{"types":"./dist/plugin-sdk/clickclack.d.ts","default":"./dist/plugin-sdk/clickclack.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"860eaf2d78d5975cb935216388d5e58aebeced9f","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.6.9","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260730084522.860eaf2_1785401230413_0.47141539586742276","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260730192831.8a7b67e":{"name":"remoteclaw","version":"0.8.0-next.20260730192831.8a7b67e","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260730192831.8a7b67e","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"ab10fa072efabda23cd026918857e5751c2618b8","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260730192831.8a7b67e.tgz","fileCount":15368,"integrity":"sha512-znNcMmFr20NmFxTvkVyc+4gfnuuS+gTtasKSnQ+NtAYtHlx2IHLT6a1xt9KjvRlnVh9Gq37hcJc1Ic7T7CrvRA==","signatures":[{"sig":"MEYCIQCrZhmUrV7IkjldX3UMWcJHYUZVR87obutfBB1pWm7O8wIhAL2mZ5fHyi8kBGRehpeek0U3en8bTByaFYSNhywDgZuE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260730192831.8a7b67e","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":375282211},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/clickclack":{"types":"./dist/plugin-sdk/clickclack.d.ts","default":"./dist/plugin-sdk/clickclack.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"8a7b67ee960e8ea0b1eef57d6bda85ae6a8f7b91","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.6.9","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260730192831.8a7b67e_1785439820888_0.3544439510924511","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260804141703.e623238":{"name":"remoteclaw","version":"0.8.0-next.20260804141703.e623238","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260804141703.e623238","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"8fab26637537327625d8d716452aaaff5cead215","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260804141703.e623238.tgz","fileCount":15389,"integrity":"sha512-Gmnup/wjSXnea9q0R1vEv5FEIVEtjIowJIkpvlnA5JECLMVxij4JdCub3a3eSbySSRUAr/2v91/R8LEK7KdkkQ==","signatures":[{"sig":"MEUCIQDQwQv/+P/T1EYJG546Wf1vgXd/J7k876GRQFmoohNK6gIgbTDcc/QsFYlR5dO8oa5EejljTNwgktRlNYW/JDll2U0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260804141703.e623238","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":375479453},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/clickclack":{"types":"./dist/plugin-sdk/clickclack.d.ts","default":"./dist/plugin-sdk/clickclack.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"e62323887579d2a917cf8bb46d74d7a068fcf625","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.6.9","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260804141703.e623238_1785853128534_0.2059805373853738","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260804151631.928d262":{"name":"remoteclaw","version":"0.8.0-next.20260804151631.928d262","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260804151631.928d262","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"213af7664fed31f7beb4a4dad6e5d8d7f1952481","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260804151631.928d262.tgz","fileCount":15399,"integrity":"sha512-OCwjYNmln5ZLOwUMPrxeChIYNtvtAcjBSrPrTxp8p+7YYtn5ynaZWDihStfrbD3Cx5S5tnQQAb0QA26n8ry9Tg==","signatures":[{"sig":"MEUCIDyT1mY09NbcZgP5IunY9NPv2S2YFd0OVPeC3J5s85Y9AiEApdko+oVBxoQ7IGmnxfLKdD/sHyBiKFwv5+zGndUCZV8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260804151631.928d262","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":375543912},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/clickclack":{"types":"./dist/plugin-sdk/clickclack.d.ts","default":"./dist/plugin-sdk/clickclack.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"928d262798f9e6ddb916b02aec45efb3f2d0b9e5","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.6.9","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260804151631.928d262_1785856704106_0.4002165441023515","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260804152749.f5a7c43":{"name":"remoteclaw","version":"0.8.0-next.20260804152749.f5a7c43","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260804152749.f5a7c43","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"1ae60299898babb6da88ef23c8c1db503e5ca6a3","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260804152749.f5a7c43.tgz","fileCount":15389,"integrity":"sha512-T/oDE9eJ/vxra31W9N9sd8iaBbBfGARXH/r3XiJDYpnaFzfiq5PL+28h98VWgoxAMUoX0au1t3flCbxtGL+8Ag==","signatures":[{"sig":"MEYCIQCUdM9iS9cq6Ay9Bzfyj41H5sBQVag4/kXaQMS7s/enVgIhAPnDVdH0EYHBQEqNHSZ/89I4Y3MlAFdv16Lt9Zp1nDQ0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260804152749.f5a7c43","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":375479253},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/clickclack":{"types":"./dist/plugin-sdk/clickclack.d.ts","default":"./dist/plugin-sdk/clickclack.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"f5a7c43d8e3dd103e283952af734cbc507c315e6","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.6.9","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260804152749.f5a7c43_1785857380019_0.8956718911159554","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260804154304.cf066bc":{"name":"remoteclaw","version":"0.8.0-next.20260804154304.cf066bc","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260804154304.cf066bc","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"b52ece557f667edaa9927e81fb0462e0b3fb6701","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260804154304.cf066bc.tgz","fileCount":15390,"integrity":"sha512-uArN5CoWALgSiiH7zDKB1zqQxIbyJWuOqgtjYSWni9pM0yarbDEgaliv6UVEi3gWwK5Guhffq91d0rnR9uyIPQ==","signatures":[{"sig":"MEYCIQC8Z4NSwPWzlOh5Py123c9zzWoqW+56wqvcWyATX30ePgIhAMkJNvcuBxXfiuf26qU4GIDyyt99YSdSvfcIaD9VJ/EW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260804154304.cf066bc","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":375512505},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/clickclack":{"types":"./dist/plugin-sdk/clickclack.d.ts","default":"./dist/plugin-sdk/clickclack.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"cf066bcf25a1acfc823bc019ed67ac886abbaf66","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.6.9","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260804154304.cf066bc_1785858291825_0.7574462900290808","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260804155417.a937576":{"name":"remoteclaw","version":"0.8.0-next.20260804155417.a937576","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260804155417.a937576","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"eef6c9d7e921bed982d188c1425f4d06e843ca6e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260804155417.a937576.tgz","fileCount":15390,"integrity":"sha512-ppmFkzFKaaTqN/HR9DoQwdi5+tFEN6Lc033mJIpxr4lyyU1C8TcoXZSgMnPiv0HUr1rLO8YAtIIKEv+9S1mTgA==","signatures":[{"sig":"MEQCICMs6Pn+kbqf1JQNzNVaJcYxRtqp8O/zMjZoLZ18xzFdAiAwSxmeIeXhH3rWPNEUQ+BZ8BHnmlT0ZKGGs/KUwhvhHw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260804155417.a937576","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":375512510},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/clickclack":{"types":"./dist/plugin-sdk/clickclack.d.ts","default":"./dist/plugin-sdk/clickclack.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"a937576a78b9bf577be42192b4a23e037a3b331d","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.6.9","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260804155417.a937576_1785858968299_0.1814314955300107","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260804160534.b33160f":{"name":"remoteclaw","version":"0.8.0-next.20260804160534.b33160f","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260804160534.b33160f","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"ab515835f36a2b52491d5dac7755b0d832e7cae4","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260804160534.b33160f.tgz","fileCount":15405,"integrity":"sha512-0J/PotIefzQhKLOWof5j/MTuxkLecIEEBDirkAFtikTD7Hr+0zACON4scvqcTfXmf1jmLR2J3+j29uZYf2B6Xg==","signatures":[{"sig":"MEYCIQDV0XxlDlYbBRIztTvls1sKw/dqV6/8KGQ/PcVWutt94AIhAN7M7dI0GhOjK4NGRyPbMxeWXhLRbb7S/STafycIuo+J","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260804160534.b33160f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":375668573},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/clickclack":{"types":"./dist/plugin-sdk/clickclack.d.ts","default":"./dist/plugin-sdk/clickclack.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"b33160f13a470c0743843928a5200e4eec300049","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.6.9","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260804160534.b33160f_1785859647136_0.21096002906831646","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260804182312.26d4d92":{"name":"remoteclaw","version":"0.8.0-next.20260804182312.26d4d92","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260804182312.26d4d92","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"3bddb0b60a252d5934d570951f29428366c19e31","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260804182312.26d4d92.tgz","fileCount":15405,"integrity":"sha512-RY64z0sAS4tr041z14lU6XM83k7jEEmZRzpYuhs02WaZ1KbQY6E0aubBOkCkSHTi9hziVkz66LB8/4mqCHtxjA==","signatures":[{"sig":"MEYCIQD01PorpPzLmP4X69fdiSsjha9k8dK/XKZpItFpVUjvLQIhAOXSvNAxk896xMw2MBj2HVwrjUda4T0SGkvRZtCS4PNl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260804182312.26d4d92","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":375669839},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/clickclack":{"types":"./dist/plugin-sdk/clickclack.d.ts","default":"./dist/plugin-sdk/clickclack.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"26d4d9245139f82f281dd4d7e85cceffdb2caaad","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","lint:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_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","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.6.9","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260804182312.26d4d92_1785867905445_0.7297087745868618","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260804210009.cc6a360":{"name":"remoteclaw","version":"0.8.0-next.20260804210009.cc6a360","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260804210009.cc6a360","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"c11aa6b4819e0a5c40f1b200f3a16a5e2ad2bdee","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260804210009.cc6a360.tgz","fileCount":15494,"integrity":"sha512-rwMDzoeTJvnDfmCMjfppXgeOJ9DEzWb5P5ZyADX5JAUH3BI51VrwatW5t11BoN7nmBLPcb4umVLiPg3dHVzpyw==","signatures":[{"sig":"MEYCIQDapLvE66lQLKEr2qGlb+T4ddrBRbXx/jydoAlXMVTljQIhAIIUEeJAef45cJIaWFHx3n3CHyXOaI5L6WJieIpxupLB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260804210009.cc6a360","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":376241410},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/clickclack":{"types":"./dist/plugin-sdk/clickclack.d.ts","default":"./dist/plugin-sdk/clickclack.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"cc6a36002d078835627d5478f9627f91ab28943c","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm typecheck:scripts && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:no-dangling-tooling-config-refs && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.app/.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":"node scripts/run-with-env.mjs REMOTECLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway","lint:shards":"node scripts/run-oxlint-shards.mjs","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway --reset","typecheck:scripts":"node scripts/check-scripts-typecheck.mjs","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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:unused-files":"node scripts/check-deadcode-unused-files.mjs","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","plugins:inventory:gen":"node scripts/generate-plugin-inventory-doc.mjs --write","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","plugins:inventory:check":"node scripts/generate-plugin-inventory-doc.mjs --check","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","typecheck:scripts:update":"node scripts/check-scripts-typecheck.mjs --update","lint:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","lint:tmp:no-random-messaging":"node scripts/check-no-random-messaging-tmp.mjs","lint:no-dangling-tooling-config-refs":"node scripts/check-tooling-config-refs.mjs","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.6.9","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260804210009.cc6a360_1785877318034_0.5516767895543686","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260804211210.79b6e4d":{"name":"remoteclaw","version":"0.8.0-next.20260804211210.79b6e4d","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260804211210.79b6e4d","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"6ae6814062f6e88b3859225dc8fb0aa50ea134dc","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260804211210.79b6e4d.tgz","fileCount":15495,"integrity":"sha512-3JFgMFZjR1Mjb9ASpi/N20ckT7dOUIvhojwDpP6RH3fZ05C/nBRWrXLy+LhhUYrvR4pHZOR+FducbynKexqb+g==","signatures":[{"sig":"MEQCIFjVRtek7zRZ1iGxjONY6laZf8JwJjz8+9pUIgFRlXeCAiAlEF1ogl/97N/VZIeXwkWMfqNvuE61b51WDXUNPnpnng==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260804211210.79b6e4d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":376245365},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/clickclack":{"types":"./dist/plugin-sdk/clickclack.d.ts","default":"./dist/plugin-sdk/clickclack.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"79b6e4d9086b3e0d51a25198dea43b15e51f7fba","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm typecheck:scripts && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:no-dangling-tooling-config-refs && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.app/.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":"node scripts/run-with-env.mjs REMOTECLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway","lint:shards":"node scripts/run-oxlint-shards.mjs","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway --reset","typecheck:scripts":"node scripts/check-scripts-typecheck.mjs","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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:unused-files":"node scripts/check-deadcode-unused-files.mjs","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","plugins:inventory:gen":"node scripts/generate-plugin-inventory-doc.mjs --write","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","plugins:inventory:check":"node scripts/generate-plugin-inventory-doc.mjs --check","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","typecheck:scripts:update":"node scripts/check-scripts-typecheck.mjs --update","lint:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","lint:tmp:no-random-messaging":"node scripts/check-no-random-messaging-tmp.mjs","lint:no-dangling-tooling-config-refs":"node scripts/check-tooling-config-refs.mjs","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.6.9","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260804211210.79b6e4d_1785878043166_0.2898974030331043","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260804212327.28546f0":{"name":"remoteclaw","version":"0.8.0-next.20260804212327.28546f0","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260804212327.28546f0","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"244df001f724ae63cbeb6252c16fedc63858f1ba","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260804212327.28546f0.tgz","fileCount":15503,"integrity":"sha512-mcgEn1rztNhPSAQCfuawSHpxnG9Wdg3NZo2uW6JV2VNzh4RNBpVxuRiJ0Eddt/yUhGyqUALQWDZZb1zGLqUiTg==","signatures":[{"sig":"MEYCIQCozAQyFqA+wrGcly+VVanc1GXjwiQg83C/dXZEL9wKQQIhAIEteCun0a6ztMSAKgaaMRPP15G261395eHGoz2YaqIh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260804212327.28546f0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":376287164},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/clickclack":{"types":"./dist/plugin-sdk/clickclack.d.ts","default":"./dist/plugin-sdk/clickclack.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"28546f06265193bef3a64979b610bedcd3304e91","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm typecheck:scripts && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:no-dangling-tooling-config-refs && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.app/.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":"node scripts/run-with-env.mjs REMOTECLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway","lint:shards":"node scripts/run-oxlint-shards.mjs","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway --reset","typecheck:scripts":"node scripts/check-scripts-typecheck.mjs","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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:unused-files":"node scripts/check-deadcode-unused-files.mjs","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","plugins:inventory:gen":"node scripts/generate-plugin-inventory-doc.mjs --write","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","plugins:inventory:check":"node scripts/generate-plugin-inventory-doc.mjs --check","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","typecheck:scripts:update":"node scripts/check-scripts-typecheck.mjs --update","lint:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","lint:tmp:no-random-messaging":"node scripts/check-no-random-messaging-tmp.mjs","lint:no-dangling-tooling-config-refs":"node scripts/check-tooling-config-refs.mjs","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.6.9","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260804212327.28546f0_1785878718504_0.998984628186333","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260804213653.3237e9a":{"name":"remoteclaw","version":"0.8.0-next.20260804213653.3237e9a","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260804213653.3237e9a","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e95f029e72688b5499e74855747321ff88a14bd7","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260804213653.3237e9a.tgz","fileCount":15494,"integrity":"sha512-oSnpAyV+p26cqOacgzBnG+szkvPym0Z804izL+Ft1UfPes2nukG13LJXZmW03Immw48CVdwXvxV9MtXrBUyJqw==","signatures":[{"sig":"MEUCIAHUZW72wkwdzrdKswCGPBt5QDKGo9oo8BfIIo+XSNsCAiEAimcd404Rp31yScphxk7tGopzuNzAKgmnt88P09lCMpQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260804213653.3237e9a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":376241409},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/clickclack":{"types":"./dist/plugin-sdk/clickclack.d.ts","default":"./dist/plugin-sdk/clickclack.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"3237e9ad8477fd142603c75db6cbad6db05b7898","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm typecheck:scripts && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:no-dangling-tooling-config-refs && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.app/.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":"node scripts/run-with-env.mjs REMOTECLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway","lint:shards":"node scripts/run-oxlint-shards.mjs","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway --reset","typecheck:scripts":"node scripts/check-scripts-typecheck.mjs","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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:unused-files":"node scripts/check-deadcode-unused-files.mjs","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","plugins:inventory:gen":"node scripts/generate-plugin-inventory-doc.mjs --write","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","plugins:inventory:check":"node scripts/generate-plugin-inventory-doc.mjs --check","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","typecheck:scripts:update":"node scripts/check-scripts-typecheck.mjs --update","lint:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","lint:tmp:no-random-messaging":"node scripts/check-no-random-messaging-tmp.mjs","lint:no-dangling-tooling-config-refs":"node scripts/check-tooling-config-refs.mjs","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.6.9","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260804213653.3237e9a_1785879525722_0.050279487156729585","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260805071703.384e4e4":{"name":"remoteclaw","version":"0.8.0-next.20260805071703.384e4e4","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260805071703.384e4e4","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"095b7907c212cc7e85fdf03991b7b48d6051b8e4","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260805071703.384e4e4.tgz","fileCount":15524,"integrity":"sha512-yu58uqpvVK+VqDK5BLRs4iIwAUdLObc1i3FFAtnr3j41dDMUWli7ODTx6EtHmjPckYZmjdBGfPhA9zQLKiU/Uw==","signatures":[{"sig":"MEQCICpy/UALcFFWildt88x/8kbqpotpbD2/LKX0a4U5GXnhAiBn7THgtwBUjkr2iL8GS7aUtOHaaz4IPuY+SVYfv/716Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260805071703.384e4e4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":376266081},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/clickclack":{"types":"./dist/plugin-sdk/clickclack.d.ts","default":"./dist/plugin-sdk/clickclack.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"384e4e4d4757096603c6bee7cd55fa0f81d61ad2","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm typecheck:scripts && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:no-dangling-tooling-config-refs && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.app/.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":"node scripts/run-with-env.mjs REMOTECLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway","lint:shards":"node scripts/run-oxlint-shards.mjs","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway --reset","typecheck:scripts":"node scripts/check-scripts-typecheck.mjs","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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:unused-files":"node scripts/check-deadcode-unused-files.mjs","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","plugins:inventory:gen":"node scripts/generate-plugin-inventory-doc.mjs --write","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","plugins:inventory:check":"node scripts/generate-plugin-inventory-doc.mjs --check","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","typecheck:scripts:update":"node scripts/check-scripts-typecheck.mjs --update","lint:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","lint:tmp:no-random-messaging":"node scripts/check-no-random-messaging-tmp.mjs","lint:no-dangling-tooling-config-refs":"node scripts/check-tooling-config-refs.mjs","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.6.9","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260805071703.384e4e4_1785914332421_0.7875336466100642","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260805102915.2715d45":{"name":"remoteclaw","version":"0.8.0-next.20260805102915.2715d45","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260805102915.2715d45","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"fd17659862f35515e77cf76c9c6ef92e3c4e5c3a","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260805102915.2715d45.tgz","fileCount":15513,"integrity":"sha512-y15Aq+aqCSljeUcaz6EcPbd4JFeS1T5x1xX4ISM8PucAiwyGh00QVkGyVto8V84/PPdXZ1yn+ezMzQg/nGo6KQ==","signatures":[{"sig":"MEYCIQDTuSHvKmOwtDqMq0QeMqiCpkF2Xi2yFZv8oDay/DIZlgIhAKgQ0yMH8PA+r/Ep0zYN5lCY1TAERz7mUQ0BhW8qt0sm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260805102915.2715d45","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":376354251},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/clickclack":{"types":"./dist/plugin-sdk/clickclack.d.ts","default":"./dist/plugin-sdk/clickclack.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"2715d456b8384031e5e59a8cd3fecb1aecc02fd4","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm typecheck:scripts && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:no-dangling-tooling-config-refs && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.app/.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":"node scripts/run-with-env.mjs REMOTECLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway","lint:shards":"node scripts/run-oxlint-shards.mjs","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway --reset","typecheck:scripts":"node scripts/check-scripts-typecheck.mjs","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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:unused-files":"node scripts/check-deadcode-unused-files.mjs","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","plugins:inventory:gen":"node scripts/generate-plugin-inventory-doc.mjs --write","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","plugins:inventory:check":"node scripts/generate-plugin-inventory-doc.mjs --check","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","typecheck:scripts:update":"node scripts/check-scripts-typecheck.mjs --update","lint:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","lint:tmp:no-random-messaging":"node scripts/check-no-random-messaging-tmp.mjs","lint:no-dangling-tooling-config-refs":"node scripts/check-tooling-config-refs.mjs","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.6.9","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260805102915.2715d45_1785925864890_0.12584203005798122","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260805104041.38d7bac":{"name":"remoteclaw","version":"0.8.0-next.20260805104041.38d7bac","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260805104041.38d7bac","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"8db523d5c5e851e2498866d99dfdc7e5ae93a89d","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260805104041.38d7bac.tgz","fileCount":15531,"integrity":"sha512-P9jVksFmLySeP4oQJi4R5Jr2kC0IZ10R/NucCr5Ed6Kx19HI3iErd5ZajN6JpjoEvRbVbtcuCvT5U8iHfz+cAQ==","signatures":[{"sig":"MEQCIA+dwHzQtt0RVlkkeix+ECHsuPGRCUl33iGMwTtSm5NGAiA5KoU7PcqKFz3LFGWwAgI81tLBvtxZjWg/uQzvu119BQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260805104041.38d7bac","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":376389361},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/clickclack":{"types":"./dist/plugin-sdk/clickclack.d.ts","default":"./dist/plugin-sdk/clickclack.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"38d7bac24ef1e8a41c12ee3020a624c101972522","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm typecheck:scripts && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:no-dangling-tooling-config-refs && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.app/.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":"node scripts/run-with-env.mjs REMOTECLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway","lint:shards":"node scripts/run-oxlint-shards.mjs","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway --reset","typecheck:scripts":"node scripts/check-scripts-typecheck.mjs","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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:unused-files":"node scripts/check-deadcode-unused-files.mjs","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","plugins:inventory:gen":"node scripts/generate-plugin-inventory-doc.mjs --write","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","plugins:inventory:check":"node scripts/generate-plugin-inventory-doc.mjs --check","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","typecheck:scripts:update":"node scripts/check-scripts-typecheck.mjs --update","lint:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","lint:tmp:no-random-messaging":"node scripts/check-no-random-messaging-tmp.mjs","lint:no-dangling-tooling-config-refs":"node scripts/check-tooling-config-refs.mjs","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.6.9","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260805104041.38d7bac_1785926549774_0.6545525572347501","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260806064352.567aded":{"name":"remoteclaw","version":"0.8.0-next.20260806064352.567aded","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260806064352.567aded","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"4c814c1abd8341fe67bc7f413bbf7480be52a2fb","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260806064352.567aded.tgz","fileCount":15531,"integrity":"sha512-xSdGRy+PAYLOMkziy2NOj1/NWVo7C9ik53azCYVhbvBDBIPmrd8FEZ6WW7GYd3HTLp+4rb9LQ6KXNyH424OGmw==","signatures":[{"sig":"MEYCIQDABk+K8JnawsAsfyA2LYFeMgb7CVyKndLrSUFBTn1kIwIhAPsOnc1GDKyZOm/cgdrUVJHEpnpNSxXWCRxyjW3o1qH/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260806064352.567aded","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":376388111},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/clickclack":{"types":"./dist/plugin-sdk/clickclack.d.ts","default":"./dist/plugin-sdk/clickclack.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"567aded599912ed253d5e692bf25fb94fcd072c0","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm typecheck:scripts && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:no-dangling-tooling-config-refs && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.app/.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":"node scripts/run-with-env.mjs REMOTECLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway","lint:shards":"node scripts/run-oxlint-shards.mjs","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway --reset","typecheck:scripts":"node scripts/check-scripts-typecheck.mjs","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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:unused-files":"node scripts/check-deadcode-unused-files.mjs","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","plugins:inventory:gen":"node scripts/generate-plugin-inventory-doc.mjs --write","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","plugins:inventory:check":"node scripts/generate-plugin-inventory-doc.mjs --check","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","typecheck:scripts:update":"node scripts/check-scripts-typecheck.mjs --update","lint:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","lint:tmp:no-random-messaging":"node scripts/check-no-random-messaging-tmp.mjs","lint:no-dangling-tooling-config-refs":"node scripts/check-tooling-config-refs.mjs","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.6.9","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260806064352.567aded_1785998743911_0.39910583123275045","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260806065233.41b2877":{"name":"remoteclaw","version":"0.8.0-next.20260806065233.41b2877","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260806065233.41b2877","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"fde831f032124c33451d8ca8b28f9c6eca8af84d","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260806065233.41b2877.tgz","fileCount":15531,"integrity":"sha512-PbwlJJlFyaNHzAwY25IkN8FY/KzA2R8uht6qNlme0qjVer0zYJ/3N92Lj7GDjSlHwqCLiRSXWp8nmLfbPKUnzQ==","signatures":[{"sig":"MEUCIEorVUCP/KVT+aPrcw2fikNTCdjSqO1uOTU6Afp4GfsWAiEAxG5jO09YzP/NqvKh9cXJZHedrKlKxfrW7h0gdBcsinA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260806065233.41b2877","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":376701812},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/clickclack":{"types":"./dist/plugin-sdk/clickclack.d.ts","default":"./dist/plugin-sdk/clickclack.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"41b28770dff24137edd2e433880228e9e8c4eb42","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm typecheck:scripts && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:no-dangling-tooling-config-refs && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.app/.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":"node scripts/run-with-env.mjs REMOTECLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway","lint:shards":"node scripts/run-oxlint-shards.mjs","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway --reset","typecheck:scripts":"node scripts/check-scripts-typecheck.mjs","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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:unused-files":"node scripts/check-deadcode-unused-files.mjs","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","plugins:inventory:gen":"node scripts/generate-plugin-inventory-doc.mjs --write","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","plugins:inventory:check":"node scripts/generate-plugin-inventory-doc.mjs --check","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","typecheck:scripts:update":"node scripts/check-scripts-typecheck.mjs --update","lint:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","lint:tmp:no-random-messaging":"node scripts/check-no-random-messaging-tmp.mjs","lint:no-dangling-tooling-config-refs":"node scripts/check-tooling-config-refs.mjs","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.6.9","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260806065233.41b2877_1785999265028_0.6190390511481367","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260806070353.89b43cc":{"name":"remoteclaw","version":"0.8.0-next.20260806070353.89b43cc","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260806070353.89b43cc","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e438b23d278ad0a9633ddbeb593f621e87cea19e","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260806070353.89b43cc.tgz","fileCount":15573,"integrity":"sha512-YLWajd0e+K7qw/XYsaG1xaZBWDW89E2CtKfU5ztKSC73oY6A2cDUhZ4d1vzE7PJA5In0u8he/gdfSkc4zjRyAg==","signatures":[{"sig":"MEQCIGpA2KOSSBpLf3k/nwvuWWVeTmPMq/Nx10CQMquwd6R/AiAWyQpfrlkVbEWlOieXrBDLBNIaKpMgZzpLdB04Uqp6oA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260806070353.89b43cc","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":376798864},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/clickclack":{"types":"./dist/plugin-sdk/clickclack.d.ts","default":"./dist/plugin-sdk/clickclack.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"89b43ccc5d6dd466e95935026b8eb9e88a50e2b3","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm typecheck:scripts && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:no-dangling-tooling-config-refs && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.app/.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":"node scripts/run-with-env.mjs REMOTECLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway","lint:shards":"node scripts/run-oxlint-shards.mjs","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","test:windows":"vitest run --config vitest.windows.config.ts","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway --reset","typecheck:scripts":"node scripts/check-scripts-typecheck.mjs","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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:unused-files":"node scripts/check-deadcode-unused-files.mjs","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","plugins:inventory:gen":"node scripts/generate-plugin-inventory-doc.mjs --write","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","plugins:inventory:check":"node scripts/generate-plugin-inventory-doc.mjs --check","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","typecheck:scripts:update":"node scripts/check-scripts-typecheck.mjs --update","lint:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","lint:tmp:no-random-messaging":"node scripts/check-no-random-messaging-tmp.mjs","lint:no-dangling-tooling-config-refs":"node scripts/check-tooling-config-refs.mjs","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.6.9","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260806070353.89b43cc_1785999941959_0.5747187594826701","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260806072250.c0caa1a":{"name":"remoteclaw","version":"0.8.0-next.20260806072250.c0caa1a","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260806072250.c0caa1a","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"daaa8e4e4b5b7ec53e1dd35e963e723a3afb0fea","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260806072250.c0caa1a.tgz","fileCount":15573,"integrity":"sha512-WxYCpqZXZvIeFIJ7o2EiJxpTUbZtC7aGk3cREx78ayvrgFisv+NNn5zarcKEq7IzSxuNq0k5LfqX6ej3LRReNQ==","signatures":[{"sig":"MEUCIQDIPPevrkDh3q6KcRwK+IIrZmrW2GizfkseNijrQUQHygIgSCk0cqPyZe/WDjO/Vv6rlkEPnDkvqhmT0ORhlvMSxj4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260806072250.c0caa1a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":376798858},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/clickclack":{"types":"./dist/plugin-sdk/clickclack.d.ts","default":"./dist/plugin-sdk/clickclack.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"c0caa1a84277aa8aa55869d8da754008f8ccdd46","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm typecheck:scripts && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:no-dangling-tooling-config-refs && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.app/.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":"node scripts/run-with-env.mjs REMOTECLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway","lint:shards":"node scripts/run-oxlint-shards.mjs","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","test:windows":"vitest run --config vitest.windows.config.ts","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway --reset","typecheck:scripts":"node scripts/check-scripts-typecheck.mjs","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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:unused-files":"node scripts/check-deadcode-unused-files.mjs","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","plugins:inventory:gen":"node scripts/generate-plugin-inventory-doc.mjs --write","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","plugins:inventory:check":"node scripts/generate-plugin-inventory-doc.mjs --check","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","typecheck:scripts:update":"node scripts/check-scripts-typecheck.mjs --update","lint:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","lint:tmp:no-random-messaging":"node scripts/check-no-random-messaging-tmp.mjs","lint:no-dangling-tooling-config-refs":"node scripts/check-tooling-config-refs.mjs","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.6.9","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260806072250.c0caa1a_1786001059326_0.6577925914707325","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260806073622.b4503f0":{"name":"remoteclaw","version":"0.8.0-next.20260806073622.b4503f0","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260806073622.b4503f0","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"c27557e7282fe9d6afe177e25abb40e54eca320c","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260806073622.b4503f0.tgz","fileCount":15573,"integrity":"sha512-LsPuYRCajatnWF/kJwjKFa1gU05rsS3IBWH2oIXAjJMVXoHrxdHdJEdyWbbvgSLzls/OzYgHo2MJOj3kWK6FEA==","signatures":[{"sig":"MEYCIQDnkp8Z8LOv2HDvY2Uh+ei37WpDvx0Yt3bvtYRaa5Sh7wIhAKWCbyMWEZBAhKQweuhktlOiMBpfiqvBRgrL3FxDeYgV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260806073622.b4503f0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":376800108},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/clickclack":{"types":"./dist/plugin-sdk/clickclack.d.ts","default":"./dist/plugin-sdk/clickclack.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"b4503f01089a98cbbb5683021d99d12ad13d9e71","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm typecheck:scripts && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:no-dangling-tooling-config-refs && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.app/.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":"node scripts/run-with-env.mjs REMOTECLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway","lint:shards":"node scripts/run-oxlint-shards.mjs","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","test:windows":"vitest run --config vitest.windows.config.ts","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway --reset","typecheck:scripts":"node scripts/check-scripts-typecheck.mjs","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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:unused-files":"node scripts/check-deadcode-unused-files.mjs","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","plugins:inventory:gen":"node scripts/generate-plugin-inventory-doc.mjs --write","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","plugins:inventory:check":"node scripts/generate-plugin-inventory-doc.mjs --check","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","typecheck:scripts:update":"node scripts/check-scripts-typecheck.mjs --update","lint:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","lint:tmp:no-random-messaging":"node scripts/check-no-random-messaging-tmp.mjs","lint:no-dangling-tooling-config-refs":"node scripts/check-tooling-config-refs.mjs","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.6.9","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260806073622.b4503f0_1786001891934_0.9383977268062003","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260806115809.22b745f":{"name":"remoteclaw","version":"0.8.0-next.20260806115809.22b745f","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260806115809.22b745f","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"dd4ebfb9d1992efaa5fb4137da5d0dec4aebf8f0","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260806115809.22b745f.tgz","fileCount":15573,"integrity":"sha512-vka40M69mcFf1IiKx5LFegaZomEdXAcgMYAsyyz9p2momeO0B15YwVv3bE2QZcnIX//YKxsq6ublHQ4V3sSTBw==","signatures":[{"sig":"MEQCICfE2ThvwJVc8EGeV4tR+McRNprfclk9RLfFdt6j130TAiBYruutCq1M2XLuTXF9gCn6H59TLqImB6yucJ3aknfOrQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260806115809.22b745f","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":376839916},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/clickclack":{"types":"./dist/plugin-sdk/clickclack.d.ts","default":"./dist/plugin-sdk/clickclack.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"22b745f2834bbbabda912ad2a50ebee049353a77","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm typecheck:scripts && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:no-dangling-tooling-config-refs && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.app/.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":"node scripts/run-with-env.mjs REMOTECLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway","lint:shards":"node scripts/run-oxlint-shards.mjs","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","test:windows":"vitest run --config vitest.windows.config.ts","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway --reset","typecheck:scripts":"node scripts/check-scripts-typecheck.mjs","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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:unused-files":"node scripts/check-deadcode-unused-files.mjs","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","plugins:inventory:gen":"node scripts/generate-plugin-inventory-doc.mjs --write","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","plugins:inventory:check":"node scripts/generate-plugin-inventory-doc.mjs --check","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","typecheck:scripts:update":"node scripts/check-scripts-typecheck.mjs --update","lint:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","lint:tmp:no-random-messaging":"node scripts/check-no-random-messaging-tmp.mjs","lint:no-dangling-tooling-config-refs":"node scripts/check-tooling-config-refs.mjs","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.6.9","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260806115809.22b745f_1786017577622_0.9452654706967833","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260807142034.5c244c1":{"name":"remoteclaw","version":"0.8.0-next.20260807142034.5c244c1","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260807142034.5c244c1","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"c16e92857b9f11ffeccd7e7beee174c9882ecef3","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260807142034.5c244c1.tgz","fileCount":15793,"integrity":"sha512-SdCzOW9jKMehuZdL7Wr9Mjbud95tAhHruDqYMxrnsYQ+1/NJ90HnCKs06EgHcJD3A6oVlVvggGi8mpAQscfmow==","signatures":[{"sig":"MEUCIQCCL2dgbWR2bEDHBH8nuttubabWtl0YUYJ4yJn0F0DLKQIgZvgpuJ9ibpa4nBkpOz0F60GUs1v80wUcJHs3vOmAYIs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260807142034.5c244c1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":379905200},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/clickclack":{"types":"./dist/plugin-sdk/clickclack.d.ts","default":"./dist/plugin-sdk/clickclack.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"5c244c1a95ade3902bf82e798dd23ed4e743a5d5","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm typecheck:scripts && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:no-dangling-tooling-config-refs && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.app/.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":"node scripts/run-with-env.mjs REMOTECLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway","lint:shards":"node scripts/run-oxlint-shards.mjs","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","test:windows":"vitest run --config vitest.windows.config.ts","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway --reset","typecheck:scripts":"node scripts/check-scripts-typecheck.mjs","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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:unused-files":"node scripts/check-deadcode-unused-files.mjs","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","plugins:inventory:gen":"node scripts/generate-plugin-inventory-doc.mjs --write","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","plugins:inventory:check":"node scripts/generate-plugin-inventory-doc.mjs --check","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","typecheck:scripts:update":"node scripts/check-scripts-typecheck.mjs --update","lint:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","lint:tmp:no-random-messaging":"node scripts/check-no-random-messaging-tmp.mjs","lint:no-dangling-tooling-config-refs":"node scripts/check-tooling-config-refs.mjs","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.6.9","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260807142034.5c244c1_1786112545765_0.7464726038603178","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260807152930.70abe66":{"name":"remoteclaw","version":"0.8.0-next.20260807152930.70abe66","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260807152930.70abe66","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"21e738e2e6512c35f93773fa604e8ba10fd0d710","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260807152930.70abe66.tgz","fileCount":15793,"integrity":"sha512-XGnqUU4s2wD5nQx9RTy/CpnjEdZLjc7XCdpQEZP7aA3S6IZCTiDnm/MshCID6H4e6LBjA5yZXzX4lHPx6XEEkQ==","signatures":[{"sig":"MEUCIEzCfXdyjQJsq988+Kt3A3tw91ph6D0BxIYmcJdxxuXhAiEAjBLYsg8o+XDkxI0hVzqrjZi0M/YOE3+O+whhRHPIJKc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260807152930.70abe66","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":379872829},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/clickclack":{"types":"./dist/plugin-sdk/clickclack.d.ts","default":"./dist/plugin-sdk/clickclack.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"70abe66174fda5fa23bdc74dd9cca0a955feeb15","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm typecheck:scripts && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:no-dangling-tooling-config-refs && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.app/.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":"node scripts/run-with-env.mjs REMOTECLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway","lint:shards":"node scripts/run-oxlint-shards.mjs","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","test:windows":"vitest run --config vitest.windows.config.ts","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway --reset","typecheck:scripts":"node scripts/check-scripts-typecheck.mjs","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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:unused-files":"node scripts/check-deadcode-unused-files.mjs","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","plugins:inventory:gen":"node scripts/generate-plugin-inventory-doc.mjs --write","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","plugins:inventory:check":"node scripts/generate-plugin-inventory-doc.mjs --check","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","typecheck:scripts:update":"node scripts/check-scripts-typecheck.mjs --update","lint:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","lint:tmp:no-random-messaging":"node scripts/check-no-random-messaging-tmp.mjs","lint:no-dangling-tooling-config-refs":"node scripts/check-tooling-config-refs.mjs","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.6.9","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260807152930.70abe66_1786116668438_0.7727826839875374","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260807170056.f663e16":{"name":"remoteclaw","version":"0.8.0-next.20260807170056.f663e16","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260807170056.f663e16","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"cdb53edce9c7ec911a8ad94c5a51769b74233d1d","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260807170056.f663e16.tgz","fileCount":15793,"integrity":"sha512-/tvjTuknp8clAkcXm3fmyswSbKZGvERJ66xRKLeTQ/WnwsPAT/ZkmGzOvNgp+LL0ZM6yrNoihR9+Wm5P8JucYg==","signatures":[{"sig":"MEYCIQDViUaMJjUl1UoxpjCXXlmFTqkqqWVIQAYhqxZXNurz0QIhAI+3NmplEPdOx+BxSi4GzvHrnO1VEb6xQdL/eU1lZXbj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260807170056.f663e16","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":379872430},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/clickclack":{"types":"./dist/plugin-sdk/clickclack.d.ts","default":"./dist/plugin-sdk/clickclack.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"f663e167d798416f7c55ece3155d5fa4755b356d","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm typecheck:scripts && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:no-dangling-tooling-config-refs && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.app/.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":"node scripts/run-with-env.mjs REMOTECLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway","lint:shards":"node scripts/run-oxlint-shards.mjs","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","test:windows":"vitest run --config vitest.windows.config.ts","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway --reset","typecheck:scripts":"node scripts/check-scripts-typecheck.mjs","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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:unused-files":"node scripts/check-deadcode-unused-files.mjs","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","plugins:inventory:gen":"node scripts/generate-plugin-inventory-doc.mjs --write","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","plugins:inventory:check":"node scripts/generate-plugin-inventory-doc.mjs --check","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","typecheck:scripts:update":"node scripts/check-scripts-typecheck.mjs --update","lint:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","lint:tmp:no-random-messaging":"node scripts/check-no-random-messaging-tmp.mjs","lint:no-dangling-tooling-config-refs":"node scripts/check-tooling-config-refs.mjs","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.6.9","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260807170056.f663e16_1786122169830_0.14225312576346072","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260807180334.b7a6560":{"name":"remoteclaw","version":"0.8.0-next.20260807180334.b7a6560","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260807180334.b7a6560","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"3a9c6cb141fa9e6d876862de07548f7d30d46d36","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260807180334.b7a6560.tgz","fileCount":15792,"integrity":"sha512-lPJIG4fnso7oRlGJeU/3gKcZoK5bW1XdSvMsBZeZJIZgimbcW+0nohxYK8jU6TRFCOoxl48RigvFhx65HwNF6A==","signatures":[{"sig":"MEUCIQD4X0uAbSlWLtqJbifzNCoeIJqCpwI/YL+/t7j8oKDtZwIgJrP9VdWYl2zXonZgY4gAlI+zvFwCapejJwaEKjrKR7k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260807180334.b7a6560","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":379853983},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/clickclack":{"types":"./dist/plugin-sdk/clickclack.d.ts","default":"./dist/plugin-sdk/clickclack.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"b7a6560c8b2299bb0350df329223eed687377624","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm typecheck:scripts && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:no-dangling-tooling-config-refs && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.app/.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":"node scripts/run-with-env.mjs REMOTECLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway","lint:shards":"node scripts/run-oxlint-shards.mjs","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","test:windows":"vitest run --config vitest.windows.config.ts","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway --reset","typecheck:scripts":"node scripts/check-scripts-typecheck.mjs","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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:unused-files":"node scripts/check-deadcode-unused-files.mjs","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","plugins:inventory:gen":"node scripts/generate-plugin-inventory-doc.mjs --write","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","plugins:inventory:check":"node scripts/generate-plugin-inventory-doc.mjs --check","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","typecheck:scripts:update":"node scripts/check-scripts-typecheck.mjs --update","lint:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","lint:tmp:no-random-messaging":"node scripts/check-no-random-messaging-tmp.mjs","lint:no-dangling-tooling-config-refs":"node scripts/check-tooling-config-refs.mjs","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.6.9","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260807180334.b7a6560_1786125926172_0.35905511403175017","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260807190535.4055ed0":{"name":"remoteclaw","version":"0.8.0-next.20260807190535.4055ed0","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260807190535.4055ed0","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"07404945c75d2397066b47105ff59a654e2674a4","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260807190535.4055ed0.tgz","fileCount":15793,"integrity":"sha512-1UwbMbtUlhSUzAsqNCzX1cV3TgCcfxLsjT6MO8DdrJ1u/v8P/XScrce8zqx7YIvG3ZuYlNp8J0tAQxhm51cxVw==","signatures":[{"sig":"MEUCICb/OdGrtaxaX9t2bglWvI5v7yQsV87c6+sAwjcQv8GjAiEAkl+4HFuRxENTE4DB+m6Zdd9aR9HbQ2INxUegrMnPk+4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260807190535.4055ed0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":379872271},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/clickclack":{"types":"./dist/plugin-sdk/clickclack.d.ts","default":"./dist/plugin-sdk/clickclack.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"4055ed09061c79be8b112ee6c41a373dba882aa7","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm typecheck:scripts && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:no-dangling-tooling-config-refs && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.app/.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":"node scripts/run-with-env.mjs REMOTECLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway","lint:shards":"node scripts/run-oxlint-shards.mjs","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","test:windows":"vitest run --config vitest.windows.config.ts","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway --reset","typecheck:scripts":"node scripts/check-scripts-typecheck.mjs","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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:unused-files":"node scripts/check-deadcode-unused-files.mjs","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","plugins:inventory:gen":"node scripts/generate-plugin-inventory-doc.mjs --write","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","plugins:inventory:check":"node scripts/generate-plugin-inventory-doc.mjs --check","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","typecheck:scripts:update":"node scripts/check-scripts-typecheck.mjs --update","lint:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","lint:tmp:no-random-messaging":"node scripts/check-no-random-messaging-tmp.mjs","lint:no-dangling-tooling-config-refs":"node scripts/check-tooling-config-refs.mjs","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.6.9","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260807190535.4055ed0_1786129646918_0.7350701325983378","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260807194715.c93b2db":{"name":"remoteclaw","version":"0.8.0-next.20260807194715.c93b2db","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260807194715.c93b2db","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"e1b6dcb7c3b63583692f9c66a56782c93fbd9103","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260807194715.c93b2db.tgz","fileCount":15793,"integrity":"sha512-iXuBPwHLMXa+TN6Dqo7m46ZuCDNPXNz0szCFFWNL5eVGwc5aiXv2Oh+aB5h0nAqoKddZkkamGM6sje7axLcACw==","signatures":[{"sig":"MEUCIQCs9wBWkGeafbMQ9Uug/EEr8x+k4dNK3KihFT0cqSRVOAIgKg4dUeuMltIdqtsdsG3eIsKMHsdNpL6P6m3PYvu11iQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260807194715.c93b2db","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":379873058},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/clickclack":{"types":"./dist/plugin-sdk/clickclack.d.ts","default":"./dist/plugin-sdk/clickclack.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"c93b2db466b7480faa410dfa2441c2db2851a3d3","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm typecheck:scripts && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:no-dangling-tooling-config-refs && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.app/.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":"node scripts/run-with-env.mjs REMOTECLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway","lint:shards":"node scripts/run-oxlint-shards.mjs","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","test:windows":"vitest run --config vitest.windows.config.ts","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway --reset","typecheck:scripts":"node scripts/check-scripts-typecheck.mjs","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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:unused-files":"node scripts/check-deadcode-unused-files.mjs","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","plugins:inventory:gen":"node scripts/generate-plugin-inventory-doc.mjs --write","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","plugins:inventory:check":"node scripts/generate-plugin-inventory-doc.mjs --check","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","typecheck:scripts:update":"node scripts/check-scripts-typecheck.mjs --update","lint:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","lint:tmp:no-random-messaging":"node scripts/check-no-random-messaging-tmp.mjs","lint:no-dangling-tooling-config-refs":"node scripts/check-tooling-config-refs.mjs","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.6.9","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260807194715.c93b2db_1786132149910_0.5308163860050501","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260807203132.db1b88d":{"name":"remoteclaw","version":"0.8.0-next.20260807203132.db1b88d","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260807203132.db1b88d","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"067786023e9754a8f9fb43f5a118955d3c3760a6","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260807203132.db1b88d.tgz","fileCount":15792,"integrity":"sha512-26cykrSEzwLCSwH7FAYF8ACd7+4CfOM08SBeEehRiEpFzVR4wF6AjwhtxGSkwgmf6zEg5nJ5SFH4Rb8XX7naNw==","signatures":[{"sig":"MEUCIQC72Nftn4Uxc/HbIJL5wlkPZuIqtxxajRKttLDQc3oIkgIgGrh2h66jnCazO2HXKRMBe+e91oCb9Xqrxwdlh+LVWNw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260807203132.db1b88d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":379836051},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/clickclack":{"types":"./dist/plugin-sdk/clickclack.d.ts","default":"./dist/plugin-sdk/clickclack.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"db1b88d059515d5c8aada57c8e655d39c37860e4","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm typecheck:scripts && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:no-dangling-tooling-config-refs && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.app/.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":"node scripts/run-with-env.mjs REMOTECLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway","lint:shards":"node scripts/run-oxlint-shards.mjs","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","test:windows":"vitest run --config vitest.windows.config.ts","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway --reset","typecheck:scripts":"node scripts/check-scripts-typecheck.mjs","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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:unused-files":"node scripts/check-deadcode-unused-files.mjs","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","plugins:inventory:gen":"node scripts/generate-plugin-inventory-doc.mjs --write","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","plugins:inventory:check":"node scripts/generate-plugin-inventory-doc.mjs --check","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","typecheck:scripts:update":"node scripts/check-scripts-typecheck.mjs --update","lint:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","lint:tmp:no-random-messaging":"node scripts/check-no-random-messaging-tmp.mjs","lint:no-dangling-tooling-config-refs":"node scripts/check-tooling-config-refs.mjs","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.6.9","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260807203132.db1b88d_1786134800494_0.32450174439303137","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260807204312.212b71a":{"name":"remoteclaw","version":"0.8.0-next.20260807204312.212b71a","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260807204312.212b71a","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"d72c339b79f1e3d14c4431bfd19cb26a4ddb3fb8","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260807204312.212b71a.tgz","fileCount":15793,"integrity":"sha512-RpVtRxwou2eMUrhVXcLIbpk3lvBSedfKU9JLe3+aViXW7KePEN8ik2En8gm8N2509McpjkpKHfchPHMN7GfEIA==","signatures":[{"sig":"MEYCIQD/8FGWa5jQ3h6XPexxPdIfYpo1090MCMNlbAk7xDyuEwIhAIGQhcExJoyzJKVkpwx/aICqFwEdjdtlOSKFz1QZ3zfn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260807204312.212b71a","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":379853445},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/clickclack":{"types":"./dist/plugin-sdk/clickclack.d.ts","default":"./dist/plugin-sdk/clickclack.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"212b71a0b5cd21cf11b572ae75a23ec512fb5d4e","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm typecheck:scripts && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:no-dangling-tooling-config-refs && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.app/.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":"node scripts/run-with-env.mjs REMOTECLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway","lint:shards":"node scripts/run-oxlint-shards.mjs","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","test:windows":"vitest run --config vitest.windows.config.ts","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway --reset","typecheck:scripts":"node scripts/check-scripts-typecheck.mjs","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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:unused-files":"node scripts/check-deadcode-unused-files.mjs","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","plugins:inventory:gen":"node scripts/generate-plugin-inventory-doc.mjs --write","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","plugins:inventory:check":"node scripts/generate-plugin-inventory-doc.mjs --check","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","typecheck:scripts:update":"node scripts/check-scripts-typecheck.mjs --update","lint:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","lint:tmp:no-random-messaging":"node scripts/check-no-random-messaging-tmp.mjs","lint:no-dangling-tooling-config-refs":"node scripts/check-tooling-config-refs.mjs","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.6.9","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260807204312.212b71a_1786135503677_0.06788393511127455","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260807210232.aacfa89":{"name":"remoteclaw","version":"0.8.0-next.20260807210232.aacfa89","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260807210232.aacfa89","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"52c8af77485abdf0bb0a36be3deb697677643638","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260807210232.aacfa89.tgz","fileCount":15793,"integrity":"sha512-Dxi02ra0EVjIOuGzaPxP94BMdtfVTX0wFmA23X0C+y45G7OhxEPUNzKPm8tSsGNwOVQ1R2urcSX0SbZ6+JUZ9A==","signatures":[{"sig":"MEYCIQDIyol4x+OC0fu0RTAA00ka1EclWujV0G+wpIwSEmjmeQIhAJJ8KIegXTqADCAnI9mEF0jhTulDZ6lT/I1VTPgzoPqu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260807210232.aacfa89","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":379885237},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/clickclack":{"types":"./dist/plugin-sdk/clickclack.d.ts","default":"./dist/plugin-sdk/clickclack.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"aacfa8991e16fa994c803949090eb50f0be9f840","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm typecheck:scripts && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:no-dangling-tooling-config-refs && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.app/.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":"node scripts/run-with-env.mjs REMOTECLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway","lint:shards":"node scripts/run-oxlint-shards.mjs","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","test:windows":"vitest run --config vitest.windows.config.ts","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway --reset","typecheck:scripts":"node scripts/check-scripts-typecheck.mjs","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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:unused-files":"node scripts/check-deadcode-unused-files.mjs","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","plugins:inventory:gen":"node scripts/generate-plugin-inventory-doc.mjs --write","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","plugins:inventory:check":"node scripts/generate-plugin-inventory-doc.mjs --check","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","typecheck:scripts:update":"node scripts/check-scripts-typecheck.mjs --update","lint:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","lint:tmp:no-random-messaging":"node scripts/check-no-random-messaging-tmp.mjs","lint:no-dangling-tooling-config-refs":"node scripts/check-tooling-config-refs.mjs","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.6.9","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260807210232.aacfa89_1786136666301_0.09432323886353244","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260807213040.1da3871":{"name":"remoteclaw","version":"0.8.0-next.20260807213040.1da3871","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260807213040.1da3871","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"51042bda01c3a9e3f2e6b00de2f6a3acc0089e27","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260807213040.1da3871.tgz","fileCount":15793,"integrity":"sha512-2Ce5bGdEKb5cacnUa8aZNCB9xmUQSWbaHKyrASiOKR7NzsiI64Y5Piphp2R8tYZyQwvJRLIEuOlCUssfVkX50w==","signatures":[{"sig":"MEYCIQDNxXjPkLMLEKvxp5EMmDx+FpO9J4uo8d+E2blKlUJxhgIhAOIHIU5/QQiFVflHuvVAnUGRt42sBmbftfwl8KOgMgiT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260807213040.1da3871","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":379885457},"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","typebox":"1.1.28","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","@grammyjs/types":"3.26.0","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/clickclack":{"types":"./dist/plugin-sdk/clickclack.d.ts","default":"./dist/plugin-sdk/clickclack.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"1da3871bb82e61c19fe41f93571bf6a05b4b8636","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm typecheck:scripts && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:no-dangling-tooling-config-refs && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.app/.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":"node scripts/run-with-env.mjs REMOTECLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway","lint:shards":"node scripts/run-oxlint-shards.mjs","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","test:windows":"vitest run --config vitest.windows.config.ts","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway --reset","typecheck:scripts":"node scripts/check-scripts-typecheck.mjs","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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:unused-files":"node scripts/check-deadcode-unused-files.mjs","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","plugins:inventory:gen":"node scripts/generate-plugin-inventory-doc.mjs --write","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","plugins:inventory:check":"node scripts/generate-plugin-inventory-doc.mjs --check","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","typecheck:scripts:update":"node scripts/check-scripts-typecheck.mjs --update","lint:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","lint:tmp:no-random-messaging":"node scripts/check-no-random-messaging-tmp.mjs","lint:no-dangling-tooling-config-refs":"node scripts/check-tooling-config-refs.mjs","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.6.9","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260807213040.1da3871_1786138352208_0.7937792961875938","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260807214813.ca0defd":{"name":"remoteclaw","version":"0.8.0-next.20260807214813.ca0defd","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260807214813.ca0defd","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"8d46c64b34678673fda8fd9175196cd0482d032d","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260807214813.ca0defd.tgz","fileCount":15793,"integrity":"sha512-YrNKauzc+/jz87bGCHf94vi21ZedWbTMNEOiNYE5ewuAW3WtUmMLEB/cHp8M0KRVrY3mrWauY8qiBk14jlR5Eg==","signatures":[{"sig":"MEQCICMXXCyQW7z8lGLrCbrHOZZIw02imb0mjV6RV/iR2HM9AiAdyIKFNpagiQf56fWly+acshhnFt5RBp/PH4UXeQXaqw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260807214813.ca0defd","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":379886919},"main":"dist/index.js","type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/clickclack":{"types":"./dist/plugin-sdk/clickclack.d.ts","default":"./dist/plugin-sdk/clickclack.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"ca0defdd6f89faccd6e25fb21f5da3f56d747d43","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm typecheck:scripts && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:no-dangling-tooling-config-refs && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.app/.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":"node scripts/run-with-env.mjs REMOTECLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway","lint:shards":"node scripts/run-oxlint-shards.mjs","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","test:windows":"vitest run --config vitest.windows.config.ts","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway --reset","typecheck:scripts":"node scripts/check-scripts-typecheck.mjs","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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:unused-files":"node scripts/check-deadcode-unused-files.mjs","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","plugins:inventory:gen":"node scripts/generate-plugin-inventory-doc.mjs --write","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","plugins:inventory:check":"node scripts/generate-plugin-inventory-doc.mjs --check","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","typecheck:scripts:update":"node scripts/check-scripts-typecheck.mjs --update","lint:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","lint:tmp:no-random-messaging":"node scripts/check-no-random-messaging-tmp.mjs","lint:no-dangling-tooling-config-refs":"node scripts/check-tooling-config-refs.mjs","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.6.9","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260807214813.ca0defd_1786139401048_0.10678329559115696","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260807234639.c1840ca":{"name":"remoteclaw","version":"0.8.0-next.20260807234639.c1840ca","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260807234639.c1840ca","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"50cafdaa086edd33a77052a9d46a0e1136e8282b","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260807234639.c1840ca.tgz","fileCount":15793,"integrity":"sha512-nVrwU1S8iCndAhXK/DEr4j3hI83GmrYOsMkXxm8+wAdLtA2+eCBusHvxJisLTYX/MyW/VsSlmXGlP5+NjeJ3xg==","signatures":[{"sig":"MEYCIQDB3I62/7jYbCZ27yf7LBNsXmp3XvnXlmOH5AAJbsPaYwIhAOmGQsbfZHSz3Sp4UO4sE/2GBGAvbWZtdYg+HHa0+4Dv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260807234639.c1840ca","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":379885463},"main":"dist/index.js","type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/clickclack":{"types":"./dist/plugin-sdk/clickclack.d.ts","default":"./dist/plugin-sdk/clickclack.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"c1840ca742754df74dd0731f46327d07b53caaaa","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm typecheck:scripts && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:no-dangling-tooling-config-refs && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.app/.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":"node scripts/run-with-env.mjs REMOTECLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway","lint:shards":"node scripts/run-oxlint-shards.mjs","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","test:windows":"vitest run --config vitest.windows.config.ts","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway --reset","typecheck:scripts":"node scripts/check-scripts-typecheck.mjs","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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:unused-files":"node scripts/check-deadcode-unused-files.mjs","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","plugins:inventory:gen":"node scripts/generate-plugin-inventory-doc.mjs --write","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","plugins:inventory:check":"node scripts/generate-plugin-inventory-doc.mjs --check","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","typecheck:scripts:update":"node scripts/check-scripts-typecheck.mjs --update","lint:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","lint:tmp:no-random-messaging":"node scripts/check-no-random-messaging-tmp.mjs","lint:no-dangling-tooling-config-refs":"node scripts/check-tooling-config-refs.mjs","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.6.9","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260807234639.c1840ca_1786146512846_0.7505936977947025","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260808000616.579803d":{"name":"remoteclaw","version":"0.8.0-next.20260808000616.579803d","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260808000616.579803d","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"500b42476c1b08f58e7006dabe78772f9b242cea","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260808000616.579803d.tgz","fileCount":15793,"integrity":"sha512-Wg5EyJQKNJPo+dbuTk/fL6P0Om7spMn3jou4D6421Gwiqeaw1k9XxStbMv+jio79aYJMIx0MeEagFv9BoJSH2Q==","signatures":[{"sig":"MEYCIQCdpzL3msIzNhiAL4pbZl0yY1CCIJqQdWESqnGByd2qWAIhANVU72ECDtgHv3384+Dk26v/eenmDv+lJ58JonQDWdlf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260808000616.579803d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":379893788},"main":"dist/index.js","type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/clickclack":{"types":"./dist/plugin-sdk/clickclack.d.ts","default":"./dist/plugin-sdk/clickclack.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"579803d9e50f1de980257c808953be0e3383e271","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm typecheck:scripts && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:no-dangling-tooling-config-refs && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.app/.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":"node scripts/run-with-env.mjs REMOTECLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway","lint:shards":"node scripts/run-oxlint-shards.mjs","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","test:windows":"vitest run --config vitest.windows.config.ts","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway --reset","typecheck:scripts":"node scripts/check-scripts-typecheck.mjs","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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:unused-files":"node scripts/check-deadcode-unused-files.mjs","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","plugins:inventory:gen":"node scripts/generate-plugin-inventory-doc.mjs --write","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","plugins:inventory:check":"node scripts/generate-plugin-inventory-doc.mjs --check","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","typecheck:scripts:update":"node scripts/check-scripts-typecheck.mjs --update","lint:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","lint:tmp:no-random-messaging":"node scripts/check-no-random-messaging-tmp.mjs","lint:no-dangling-tooling-config-refs":"node scripts/check-tooling-config-refs.mjs","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.6.9","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260808000616.579803d_1786147686336_0.0016499587539100524","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260808005717.5035144":{"name":"remoteclaw","version":"0.8.0-next.20260808005717.5035144","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260808005717.5035144","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"340978b0b91f620bd6c7523340b92e4ee55cd999","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260808005717.5035144.tgz","fileCount":15792,"integrity":"sha512-+QvhVHTO5IXPPqTE1qiyGOn30cVkEDKWr/T5rCuaYPxHbrKzJR+pPHeKQsMYJ96mMTqVHSIWnnFIxHJFDW4W4w==","signatures":[{"sig":"MEUCIBv2L04iRg+xMylE+5R6N8SP78jf7qoIy2xy+97jDPjwAiEA9ctC2nTLoy3qhEeqcSd2RE9vAbB34KGneALBLoKz5M4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260808005717.5035144","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":379876594},"main":"dist/index.js","type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/clickclack":{"types":"./dist/plugin-sdk/clickclack.d.ts","default":"./dist/plugin-sdk/clickclack.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"5035144d3cddc6ee3887e454fe59209101795cea","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm typecheck:scripts && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:no-dangling-tooling-config-refs && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.app/.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":"node scripts/run-with-env.mjs REMOTECLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway","lint:shards":"node scripts/run-oxlint-shards.mjs","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","test:windows":"vitest run --config vitest.windows.config.ts","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway --reset","typecheck:scripts":"node scripts/check-scripts-typecheck.mjs","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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:unused-files":"node scripts/check-deadcode-unused-files.mjs","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","plugins:inventory:gen":"node scripts/generate-plugin-inventory-doc.mjs --write","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","plugins:inventory:check":"node scripts/generate-plugin-inventory-doc.mjs --check","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","typecheck:scripts:update":"node scripts/check-scripts-typecheck.mjs --update","lint:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","lint:tmp:no-random-messaging":"node scripts/check-no-random-messaging-tmp.mjs","lint:no-dangling-tooling-config-refs":"node scripts/check-tooling-config-refs.mjs","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.6.9","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260808005717.5035144_1786150746640_0.8273243423870353","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260808015547.3371e2d":{"name":"remoteclaw","version":"0.8.0-next.20260808015547.3371e2d","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260808015547.3371e2d","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"bb2464cda05d393f342666704cec79948e887e2f","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260808015547.3371e2d.tgz","fileCount":15792,"integrity":"sha512-ANgl+8tMilu4k1YkyCKsX8E4421/f4DUqMu3rZE/j5poRncwhP9pJk9oY78kfS9GKs1UODmdpfv9XY+hbSsRkA==","signatures":[{"sig":"MEYCIQDcYgO5Qr8VDbMgT1fbBqAPW3DgxUA+Vmi+79DU/sWX+wIhAOguKkGyQh+1M7bqEUPEe2IZ2j3vdPMAQItnS2zHYArv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260808015547.3371e2d","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":379876354},"main":"dist/index.js","type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/clickclack":{"types":"./dist/plugin-sdk/clickclack.d.ts","default":"./dist/plugin-sdk/clickclack.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"3371e2dee15dee471f721f935fe6887a68ce93e3","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm typecheck:scripts && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:no-dangling-tooling-config-refs && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.app/.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":"node scripts/run-with-env.mjs REMOTECLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway","lint:shards":"node scripts/run-oxlint-shards.mjs","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","test:windows":"vitest run --config vitest.windows.config.ts","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway --reset","typecheck:scripts":"node scripts/check-scripts-typecheck.mjs","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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:unused-files":"node scripts/check-deadcode-unused-files.mjs","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","plugins:inventory:gen":"node scripts/generate-plugin-inventory-doc.mjs --write","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","plugins:inventory:check":"node scripts/generate-plugin-inventory-doc.mjs --check","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","typecheck:scripts:update":"node scripts/check-scripts-typecheck.mjs --update","lint:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","lint:tmp:no-random-messaging":"node scripts/check-no-random-messaging-tmp.mjs","lint:no-dangling-tooling-config-refs":"node scripts/check-tooling-config-refs.mjs","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.6.9","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260808015547.3371e2d_1786154266719_0.510854479642987","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260808034540.66e88e4":{"name":"remoteclaw","version":"0.8.0-next.20260808034540.66e88e4","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260808034540.66e88e4","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"426bb843401f47a4f5a43a7e4c19d0ad57534eea","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260808034540.66e88e4.tgz","fileCount":15804,"integrity":"sha512-9wd1xEByYE4vM5jWS4zXI9mQh17Q/8Pqa68TJQVcnhkbRpx5+AEOv5Le01s+/lSyMdlZam2uvyOKxa6ophOigA==","signatures":[{"sig":"MEYCIQDRrwDctETdEsBniXh+GL2muB4+6iT0Gfb93/2u7Fit8wIhAI6MVLYxrx6FwLIgnc9dtNGkfaLQ5UGdR+OghUBWIq1U","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260808034540.66e88e4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":379965143},"main":"dist/index.js","type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/clickclack":{"types":"./dist/plugin-sdk/clickclack.d.ts","default":"./dist/plugin-sdk/clickclack.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"66e88e4ddbcacd74dcbc539031b4bf5c8f2b2c2e","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm typecheck:scripts && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:no-dangling-tooling-config-refs && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.app/.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":"node scripts/run-with-env.mjs REMOTECLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway","lint:shards":"node scripts/run-oxlint-shards.mjs","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","test:windows":"vitest run --config vitest.windows.config.ts","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway --reset","typecheck:scripts":"node scripts/check-scripts-typecheck.mjs","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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:unused-files":"node scripts/check-deadcode-unused-files.mjs","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","plugins:inventory:gen":"node scripts/generate-plugin-inventory-doc.mjs --write","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","plugins:inventory:check":"node scripts/generate-plugin-inventory-doc.mjs --check","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","typecheck:scripts:update":"node scripts/check-scripts-typecheck.mjs --update","lint:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","lint:tmp:no-random-messaging":"node scripts/check-no-random-messaging-tmp.mjs","lint:no-dangling-tooling-config-refs":"node scripts/check-tooling-config-refs.mjs","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.6.9","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260808034540.66e88e4_1786160851703_0.3445521546320198","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260808051031.692d5c6":{"name":"remoteclaw","version":"0.8.0-next.20260808051031.692d5c6","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"author":"","license":"AGPL-3.0-only","_id":"remoteclaw@0.8.0-next.20260808051031.692d5c6","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"bin":{"remoteclaw":"remoteclaw.mjs"},"dist":{"shasum":"f24db48cd1cb58ae1a6ce4508355827baf38507b","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260808051031.692d5c6.tgz","fileCount":15794,"integrity":"sha512-21MLORKbDT7HXYk9T3+gms9DqJFXcB8kVwa9mVoCdW3NsrEqDMuBcQE/BbtnjOc+w0OiCafPifYRAb1DKh7kAw==","signatures":[{"sig":"MEYCIQC4I7TmNX5xjXqg5Im8QeKMdtpAz8ttffZhAbdjGfoI9QIhAJ1ep1IXg9mykd4bDLorY4V8giLH7XIPYQm3mUX767n9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260808051031.692d5c6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":379915169},"main":"dist/index.js","type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./remoteclaw.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/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.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/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/clickclack":{"types":"./dist/plugin-sdk/clickclack.d.ts","default":"./dist/plugin-sdk/clickclack.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/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.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/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.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/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.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/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-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/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"}},"gitHead":"692d5c69c6cfaabf7ea19f08fd40bdfdab4709c5","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-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm typecheck:scripts && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:no-dangling-tooling-config-refs && pnpm lint:ui:no-css-class-drift","start":"node remoteclaw.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 RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.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":"node scripts/run-with-env.mjs REMOTECLAW_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 RemoteClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/RemoteClaw.app","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 RemoteClaw.xcodeproj -scheme RemoteClaw -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":"REMOTECLAW_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)","remoteclaw":"node scripts/run-node.mjs","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 org.remoteclaw.app/.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":"node scripts/run-with-env.mjs REMOTECLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway","lint:shards":"node scripts/run-oxlint-shards.mjs","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","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/RemoteClawKit/Sources","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","test:windows":"vitest run --config vitest.windows.config.ts","deadcode:knip":"pnpm dlx knip --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","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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/RemoteClawProtocol/GatewayModels.swift","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","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:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","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","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":"node scripts/run-with-env.mjs REMOTECLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway --reset","typecheck:scripts":"node scripts/check-scripts-typecheck.mjs","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: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","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","deadcode:unused-files":"node scripts/check-deadcode-unused-files.mjs","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","plugins:inventory:gen":"node scripts/generate-plugin-inventory-doc.mjs --write","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","plugins:inventory:check":"node scripts/generate-plugin-inventory-doc.mjs --check","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","typecheck:scripts:update":"node scripts/check-scripts-typecheck.mjs --update","lint:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","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-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"REMOTECLAW_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","lint:tmp:no-random-messaging":"node scripts/check-no-random-messaging-tmp.mjs","lint:no-dangling-tooling-config-refs":"node scripts/check-tooling-config-refs.mjs","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:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","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","semver":"7.7.4","undici":"^7.22.0","zca-js":"2.1.1","express":"^5.2.1","typebox":"1.1.28","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.4.624","strip-ansi":"^7.2.0","@slack/bolt":"^4.7.2","@urbit/aura":"^3.0.0","markdown-it":"^14.1.1","nostr-tools":"^2.23.3","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.16.0","music-metadata":"^11.12.1","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@aws-sdk/client-s3":"3.1000.0","google-auth-library":"^10.6.1","@mariozechner/pi-tui":"0.55.0","@tloncorp/tlon-skill":"0.2.2","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@aws-sdk/s3-request-presigner":"3.1000.0","@grammyjs/transformer-throttler":"^1.2.1","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"upstreamRepo":"remoteclaw/remoteclaw","publishConfig":{"access":"public"},"_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","semver":"7.7.4","tsdown":"0.21.2","vitest":"^4.1.5","@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.24.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"4.1.5","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"upstreamVersion":"2026.6.9","peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/remoteclaw_0.8.0-next.20260808051031.692d5c6_1786165942162_0.3468183133936358","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-next.20260808060554.be577e5":{"name":"remoteclaw","version":"0.8.0-next.20260808060554.be577e5","description":"Multi-channel AI gateway with extensible messaging integrations","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"homepage":"https://github.com/remoteclaw/remoteclaw#readme","bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"license":"AGPL-3.0-only","author":"","repository":{"type":"git","url":"git+https://github.com/remoteclaw/remoteclaw.git"},"bin":{"remoteclaw":"remoteclaw.mjs"},"type":"module","main":"dist/index.js","exports":{".":"./dist/index.js","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./plugin-sdk/core":{"types":"./dist/plugin-sdk/core.d.ts","default":"./dist/plugin-sdk/core.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/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/group-activation":{"types":"./dist/plugin-sdk/group-activation.d.ts","default":"./dist/plugin-sdk/group-activation.js"},"./plugin-sdk/media-store":{"types":"./dist/plugin-sdk/media-store.d.ts","default":"./dist/plugin-sdk/media-store.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/compat":{"types":"./dist/plugin-sdk/compat.d.ts","default":"./dist/plugin-sdk/compat.js"},"./plugin-sdk/telegram":{"types":"./dist/plugin-sdk/telegram.d.ts","default":"./dist/plugin-sdk/telegram.js"},"./plugin-sdk/discord":{"types":"./dist/plugin-sdk/discord.d.ts","default":"./dist/plugin-sdk/discord.js"},"./plugin-sdk/slack":{"types":"./dist/plugin-sdk/slack.d.ts","default":"./dist/plugin-sdk/slack.js"},"./plugin-sdk/signal":{"types":"./dist/plugin-sdk/signal.d.ts","default":"./dist/plugin-sdk/signal.js"},"./plugin-sdk/imessage":{"types":"./dist/plugin-sdk/imessage.d.ts","default":"./dist/plugin-sdk/imessage.js"},"./plugin-sdk/whatsapp":{"types":"./dist/plugin-sdk/whatsapp.d.ts","default":"./dist/plugin-sdk/whatsapp.js"},"./plugin-sdk/line":{"types":"./dist/plugin-sdk/line.d.ts","default":"./dist/plugin-sdk/line.js"},"./plugin-sdk/msteams":{"types":"./dist/plugin-sdk/msteams.d.ts","default":"./dist/plugin-sdk/msteams.js"},"./plugin-sdk/acpx":{"types":"./dist/plugin-sdk/acpx.d.ts","default":"./dist/plugin-sdk/acpx.js"},"./plugin-sdk/bluebubbles":{"types":"./dist/plugin-sdk/bluebubbles.d.ts","default":"./dist/plugin-sdk/bluebubbles.js"},"./plugin-sdk/clickclack":{"types":"./dist/plugin-sdk/clickclack.d.ts","default":"./dist/plugin-sdk/clickclack.js"},"./plugin-sdk/copilot-proxy":{"types":"./dist/plugin-sdk/copilot-proxy.d.ts","default":"./dist/plugin-sdk/copilot-proxy.js"},"./plugin-sdk/device-pair":{"types":"./dist/plugin-sdk/device-pair.d.ts","default":"./dist/plugin-sdk/device-pair.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/diagnostics-prometheus":{"types":"./dist/plugin-sdk/diagnostics-prometheus.d.ts","default":"./dist/plugin-sdk/diagnostics-prometheus.js"},"./plugin-sdk/diffs":{"types":"./dist/plugin-sdk/diffs.d.ts","default":"./dist/plugin-sdk/diffs.js"},"./plugin-sdk/feishu":{"types":"./dist/plugin-sdk/feishu.d.ts","default":"./dist/plugin-sdk/feishu.js"},"./plugin-sdk/googlechat":{"types":"./dist/plugin-sdk/googlechat.d.ts","default":"./dist/plugin-sdk/googlechat.js"},"./plugin-sdk/irc":{"types":"./dist/plugin-sdk/irc.d.ts","default":"./dist/plugin-sdk/irc.js"},"./plugin-sdk/llm-task":{"types":"./dist/plugin-sdk/llm-task.d.ts","default":"./dist/plugin-sdk/llm-task.js"},"./plugin-sdk/lobster":{"types":"./dist/plugin-sdk/lobster.d.ts","default":"./dist/plugin-sdk/lobster.js"},"./plugin-sdk/matrix":{"types":"./dist/plugin-sdk/matrix.d.ts","default":"./dist/plugin-sdk/matrix.js"},"./plugin-sdk/mattermost":{"types":"./dist/plugin-sdk/mattermost.d.ts","default":"./dist/plugin-sdk/mattermost.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/nostr":{"types":"./dist/plugin-sdk/nostr.d.ts","default":"./dist/plugin-sdk/nostr.js"},"./plugin-sdk/open-prose":{"types":"./dist/plugin-sdk/open-prose.d.ts","default":"./dist/plugin-sdk/open-prose.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/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/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.js"},"./plugin-sdk/telegram-command-ui":{"types":"./dist/plugin-sdk/telegram-command-ui.d.ts","default":"./dist/plugin-sdk/telegram-command-ui.js"},"./plugin-sdk/text-autolink-runtime":{"types":"./dist/plugin-sdk/text-autolink-runtime.d.ts","default":"./dist/plugin-sdk/text-autolink-runtime.js"},"./plugin-sdk/thread-ownership":{"types":"./dist/plugin-sdk/thread-ownership.d.ts","default":"./dist/plugin-sdk/thread-ownership.js"},"./plugin-sdk/tlon":{"types":"./dist/plugin-sdk/tlon.d.ts","default":"./dist/plugin-sdk/tlon.js"},"./plugin-sdk/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.js"},"./plugin-sdk/twitch":{"types":"./dist/plugin-sdk/twitch.d.ts","default":"./dist/plugin-sdk/twitch.js"},"./plugin-sdk/voice-call":{"types":"./dist/plugin-sdk/voice-call.d.ts","default":"./dist/plugin-sdk/voice-call.js"},"./plugin-sdk/zalo":{"types":"./dist/plugin-sdk/zalo.d.ts","default":"./dist/plugin-sdk/zalo.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/keyed-async-queue":{"types":"./dist/plugin-sdk/keyed-async-queue.d.ts","default":"./dist/plugin-sdk/keyed-async-queue.js"},"./plugin-sdk/health":{"types":"./dist/plugin-sdk/health.d.ts","default":"./dist/plugin-sdk/health.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/routing":{"types":"./dist/plugin-sdk/routing.d.ts","default":"./dist/plugin-sdk/routing.js"},"./plugin-sdk/secret-ref-runtime":{"types":"./dist/plugin-sdk/secret-ref-runtime.d.ts","default":"./dist/plugin-sdk/secret-ref-runtime.js"},"./plugin-sdk/string-coerce-runtime":{"types":"./dist/plugin-sdk/string-coerce-runtime.d.ts","default":"./dist/plugin-sdk/string-coerce-runtime.js"},"./cli-entry":"./remoteclaw.mjs"},"publishConfig":{"access":"public"},"scripts":{"android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","android:install":"cd apps/android && ./gradlew :app:installDebug","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n org.remoteclaw.app/.MainActivity","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","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-compat.ts","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","check":"pnpm format:check && pnpm tsgo && pnpm typecheck:scripts && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:no-remoteclaw-ai && pnpm lint:no-clawd-discord && pnpm lint:no-lobster-leak && pnpm lint:no-models-write && pnpm lint:no-dangling-tooling-config-refs && pnpm lint:ui:no-css-class-drift","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-links","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","deadcode:knip":"pnpm dlx knip --production --no-progress --reporter compact --files --dependencies","deadcode:report":"pnpm deadcode:knip; pnpm deadcode:ts-prune; pnpm deadcode:ts-unused","deadcode:ts-prune":"pnpm dlx ts-prune src extensions scripts","deadcode:ts-unused":"pnpm dlx ts-unused-exports tsconfig.json --ignoreTestFiles --exitWithCount","deadcode:unused-files":"node scripts/check-deadcode-unused-files.mjs","dev":"node scripts/run-node.mjs","docs:bin":"node scripts/build-docs-list.mjs","docs:check-links":"node scripts/docs-link-audit.mjs","docs:dev":"cd docs && mint dev","docs:list":"node scripts/docs-list.js","docs:spellcheck":"bash scripts/docs-spellcheck.sh","docs:spellcheck:fix":"bash scripts/docs-spellcheck.sh --write","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","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","format":"oxfmt --write","format:all":"pnpm format && pnpm format:swift","format:check":"oxfmt --check","format:diff":"oxfmt --write && git --no-pager diff","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","format:fix":"oxfmt --write","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/RemoteClawKit/Sources","gateway:dev":"node scripts/run-with-env.mjs REMOTECLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway","gateway:dev:reset":"node scripts/run-with-env.mjs REMOTECLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway --reset","gateway:watch":"node scripts/watch-node.mjs gateway --force","ios:build":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","ios:gen":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate'","ios:open":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && open RemoteClaw.xcodeproj'","ios:run":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project RemoteClaw.xcodeproj -scheme RemoteClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted org.remoteclaw.ios'","lint":"oxlint --type-aware","lint:all":"pnpm lint && pnpm lint:swift","lint:docs":"pnpm dlx markdownlint-cli2","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","lint:fix":"oxlint --type-aware --fix && pnpm format","lint:no-clawd-discord":"node scripts/check-no-clawd-discord.mjs","lint:no-dangling-tooling-config-refs":"node scripts/check-tooling-config-refs.mjs","lint:no-lobster-leak":"node scripts/check-no-lobster-leak.mjs","lint:no-models-write":"node scripts/check-no-models-write-config.mjs","lint:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","lint:no-remoteclaw-ai":"node scripts/check-no-remoteclaw-ai.mjs","lint:plugins:no-monolithic-plugin-sdk-entry-imports":"node --import tsx scripts/check-no-monolithic-plugin-sdk-entry-imports.ts","lint:shards":"node scripts/run-oxlint-shards.mjs","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","lint:tmp:no-random-messaging":"node scripts/check-no-random-messaging-tmp.mjs","lint:ui:no-css-class-drift":"node scripts/audit-css-class-drift.mjs","lint:ui:no-dangling-docs-affordances":"node scripts/check-control-ui-docs-affordances.mjs","lint:ui:no-dangling-docs-affordances:inventory":"node scripts/check-control-ui-docs-affordances.mjs --inventory","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","mac:open":"open dist/RemoteClaw.app","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","plugins:inventory:check":"node scripts/generate-plugin-inventory-doc.mjs --check","plugins:inventory:gen":"node scripts/generate-plugin-inventory-doc.mjs --write","plugins:sync-version":"node --import tsx scripts/plugins-sync-version.ts","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","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/RemoteClawProtocol/GatewayModels.swift","protocol:gen":"node --import tsx scripts/protocol-gen.ts","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","release:check":"node --import tsx scripts/release-check.ts","remoteclaw":"node scripts/run-node.mjs","remoteclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","start":"node remoteclaw.mjs","test":"node scripts/test-parallel.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:auto-reply":"vitest run --config vitest.auto-reply.config.ts","test:channels":"vitest run --config vitest.channels.config.ts","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","test:docker:all":"pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:docker:e2e-build":"bash scripts/e2e/build-image.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","test:e2e":"vitest run --config vitest.e2e.config.ts","test:extensions":"vitest run --config vitest.extensions.config.ts","test:fast":"vitest run --config vitest.unit.config.ts","test:force":"node --import tsx scripts/test-force.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","test:install:e2e:anthropic":"REMOTECLAW_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:install:e2e:openai":"REMOTECLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:live":"REMOTECLAW_LIVE_TEST=1 vitest run --config vitest.live.config.ts","test:macmini":"node scripts/run-with-env.mjs REMOTECLAW_TEST_VM_FORKS=0 REMOTECLAW_TEST_PROFILE=serial -- node scripts/test-parallel.mjs","test:ui":"pnpm lint:ui:no-raw-window-open && pnpm --dir ui test","test:ui:smoke":"pnpm --dir ui exec vitest run --config vitest.config.ts src/ui/app.smoke.test.ts src/ui/app.computed-style.test.ts","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:watch":"vitest","test:windows":"vitest run --config vitest.windows.config.ts","tui":"node scripts/run-node.mjs tui","tui:dev":"node scripts/run-with-env.mjs REMOTECLAW_PROFILE=dev -- node scripts/run-node.mjs --dev tui","typecheck:scripts":"node scripts/check-scripts-typecheck.mjs","typecheck:scripts:update":"node scripts/check-scripts-typecheck.mjs --update","ui:build":"node scripts/ui.js build","ui:dev":"node scripts/ui.js dev","ui:install":"node scripts/ui.js install"},"dependencies":{"@agentclientprotocol/sdk":"0.16.1","@aws-sdk/client-s3":"3.1000.0","@aws-sdk/s3-request-presigner":"3.1000.0","@buape/carbon":"0.0.0-beta-20260216184201","@clack/prompts":"^1.1.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@grammyjs/transformer-throttler":"^1.2.1","@homebridge/ciao":"^1.3.5","@larksuiteoapi/node-sdk":"^1.59.0","@line/bot-sdk":"^10.6.0","@mariozechner/pi-tui":"0.55.0","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0","@microsoft/agents-hosting":"^1.3.1","@modelcontextprotocol/sdk":"^1.27.1","@slack/bolt":"^4.7.2","@slack/web-api":"^7.16.0","@tloncorp/tlon-skill":"0.2.2","@urbit/aura":"^3.0.0","@vector-im/matrix-bot-sdk":"0.8.0-element.3","@whiskeysockets/baileys":"7.0.0-rc.9","ajv":"^8.18.0","chalk":"^5.6.2","chokidar":"^5.0.0","cli-highlight":"^2.1.11","commander":"^14.0.3","croner":"^10.0.1","discord-api-types":"^0.38.42","dotenv":"^17.3.1","express":"^5.2.1","file-type":"^21.3.1","google-auth-library":"^10.6.1","grammy":"^1.41.1","https-proxy-agent":"^8.0.0","ipaddr.js":"^2.3.0","jiti":"^2.6.1","json5":"^2.2.3","jszip":"^3.10.1","linkedom":"^0.18.12","markdown-it":"^14.1.1","music-metadata":"^11.12.1","node-edge-tts":"^1.2.10","nostr-tools":"^2.23.3","opusscript":"^0.1.1","osc-progress":"^0.3.0","pdfjs-dist":"^5.4.624","qrcode-terminal":"^0.12.0","semver":"7.7.4","sharp":"^0.34.5","strip-ansi":"^7.2.0","tar":"7.5.11","tslog":"^4.10.2","typebox":"1.1.28","undici":"^7.22.0","ws":"^8.19.0","yaml":"^2.8.2","zca-js":"2.1.1","zod":"^4.3.6"},"devDependencies":{"@grammyjs/types":"^3.24.0","@lit-labs/signals":"^0.2.0","@lit/context":"^1.1.6","@types/express":"^5.0.6","@types/markdown-it":"^14.1.2","@types/node":"^25.4.0","@types/qrcode-terminal":"^0.12.2","@types/ws":"^8.18.1","@typescript/native-preview":"7.0.0-dev.20260311.1","@vitest/coverage-v8":"4.1.5","jscpd":"4.0.8","lit":"^3.3.2","oxfmt":"0.38.0","oxlint":"^1.53.0","oxlint-tsgolint":"^0.16.0","semver":"7.7.4","signal-utils":"0.21.1","tsdown":"0.21.2","tsx":"^4.21.0","typescript":"^5.9.3","vitest":"^4.1.5"},"peerDependencies":{"@napi-rs/canvas":"^0.1.89"},"engines":{"node":">=22.12.0"},"packageManager":"pnpm@10.23.0","upstreamRepo":"remoteclaw/remoteclaw","upstreamVersion":"2026.6.9","readmeFilename":"README.md","gitHead":"be577e5f6b0c2134f9075dbbdc5ce690a9d0dd35","_id":"remoteclaw@0.8.0-next.20260808060554.be577e5","_nodeVersion":"24.18.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-6+v4E37LYlObSOnUtHep+6IxVZun5RSIPaygcyd0OvwbRiOpPqO9yclo9eMCfnr+MLqMsK+yWwAlZvdbSXbkcQ==","shasum":"d69fdf20fa7d91fac325b9c981d522b8beaa31d3","tarball":"https://registry.npmjs.org/remoteclaw/-/remoteclaw-0.8.0-next.20260808060554.be577e5.tgz","fileCount":15794,"unpackedSize":379915391,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/remoteclaw@0.8.0-next.20260808060554.be577e5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIF9JtplI/o5i46vpRmFzgXIAar0jONx0O6k8szuepNEVAiEA1tFKDgRe0k8gFQEnyGz8OYnjmrn65CsyB41R3gMIwiI="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08134aa8-1b1b-49a8-bea5-451b7c5c6f42"}},"directories":{},"maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/remoteclaw_0.8.0-next.20260808060554.be577e5_1786169260829_0.593778702597954"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-11T13:37:48.343Z","modified":"2026-08-08T06:07:42.547Z","0.0.0":"2026-02-11T13:37:48.561Z","0.1.0-next.ee53c53":"2026-03-07T00:47:34.968Z","0.1.0-next.c403049":"2026-03-07T01:04:15.912Z","0.1.0-next.ee567fa":"2026-03-07T01:14:30.226Z","0.1.0-next.7706bc4":"2026-03-07T06:58:37.479Z","0.1.0-next.aa1fa55":"2026-03-07T08:18:23.762Z","0.1.0-next.5970299":"2026-03-07T11:26:18.688Z","0.1.0-next.049f396":"2026-03-07T11:42:45.148Z","0.1.0-next.43b400d":"2026-03-07T11:53:50.323Z","0.1.0-next.2abd2fa":"2026-03-07T12:00:23.624Z","0.1.0-next.aa8f383":"2026-03-07T12:28:53.520Z","0.1.0-next.87fb2cd":"2026-03-07T13:38:08.765Z","0.1.0-next.87d2cb6":"2026-03-07T13:59:11.839Z","0.1.0-next.83ae9f7":"2026-03-07T14:05:41.619Z","0.1.0-next.1cc1cd8":"2026-03-07T14:18:51.193Z","0.1.0-next.846cd28":"2026-03-07T14:24:17.557Z","0.1.0-next.4ca8fbb":"2026-03-07T15:15:59.634Z","0.1.0-next.6eba873":"2026-03-07T15:21:26.534Z","0.1.0-next.b9d22ea":"2026-03-07T15:27:00.783Z","0.1.0-next.e3d3913":"2026-03-07T17:23:33.906Z","0.1.0-next.3429a40":"2026-03-07T19:04:49.127Z","0.1.0-next.5ed82dd":"2026-03-07T19:22:24.903Z","0.1.0-next.6cbde32":"2026-03-07T19:31:35.299Z","0.1.0-next.0c585fb":"2026-03-07T19:40:54.792Z","0.1.0-next.4452b2d":"2026-03-07T20:24:36.672Z","0.1.0-next.d0d114d":"2026-03-07T20:50:46.848Z","0.1.0-next.028b1d8":"2026-03-07T21:41:44.163Z","0.1.0-next.a9b5748":"2026-03-07T22:01:09.691Z","0.1.0-next.1de6519":"2026-03-07T22:53:58.664Z","0.1.0-next.4659fdb":"2026-03-08T00:58:38.464Z","0.1.0-next.1a86989":"2026-03-08T01:07:51.127Z","0.1.0-next.9f7caba":"2026-03-08T01:16:45.840Z","0.1.0-next.9da39bb":"2026-03-08T01:27:13.044Z","0.1.0-next.3794879":"2026-03-08T06:45:46.382Z","0.1.0-next.af48e6c":"2026-03-08T07:06:20.900Z","0.1.0-next.e183536":"2026-03-08T07:15:20.024Z","0.1.0-next.d54da3b":"2026-03-08T07:32:25.626Z","0.1.0-next.3a23392":"2026-03-08T07:42:12.439Z","0.1.0-next.243a02b":"2026-03-08T07:51:14.046Z","0.1.0-next.c08a834":"2026-03-08T08:16:15.470Z","0.1.0-next.0b6c873":"2026-03-08T08:35:55.001Z","0.1.0-next.2b10b69":"2026-03-08T08:55:06.861Z","0.1.0-next.70c6254":"2026-03-08T09:04:29.070Z","0.1.0-next.0b680c2":"2026-03-08T09:28:38.383Z","0.1.0-next.722af12":"2026-03-08T10:30:51.036Z","0.1.0-next.0f73506":"2026-03-08T10:39:57.167Z","0.1.0-next.2e9a6cd":"2026-03-08T10:54:29.227Z","0.1.0-next.5627c46":"2026-03-08T11:15:09.587Z","0.1.0-next.dbdff5b":"2026-03-08T11:23:36.072Z","0.1.0-next.4891ef1":"2026-03-08T11:32:41.701Z","0.1.0-next.380d26d":"2026-03-08T11:41:40.600Z","0.1.0-next.6dd1513":"2026-03-08T12:03:45.759Z","0.1.0-next.900e1cc":"2026-03-08T12:12:53.804Z","0.1.0-next.77a7a03":"2026-03-08T12:41:21.384Z","0.1.0-next.772ee76":"2026-03-08T12:50:28.923Z","0.1.0-next.712be07":"2026-03-08T13:19:48.036Z","0.1.0-next.3c59b67":"2026-03-08T13:29:12.260Z","0.1.0-next.a520909":"2026-03-08T13:38:21.984Z","0.1.0-next.f354cc4":"2026-03-08T13:47:15.241Z","0.1.0-next.3b6df60":"2026-03-08T14:20:17.506Z","0.1.0-next.4579e9b":"2026-03-08T14:36:33.836Z","0.1.0-next.0bae0aa":"2026-03-08T15:10:58.758Z","0.1.0-next.db4f159":"2026-03-08T15:20:09.748Z","0.1.0-next.658e907":"2026-03-08T16:01:18.626Z","0.1.0-next.3cddc25":"2026-03-08T16:45:40.829Z","0.1.0-next.385cd55":"2026-03-08T17:13:04.005Z","0.1.0-next.1eb6f0f":"2026-03-08T17:36:10.143Z","0.1.0-next.bf16d82":"2026-03-08T18:02:40.489Z","0.1.0-next.2d9b215":"2026-03-08T18:18:32.904Z","0.1.0-next.cfbbf3e":"2026-03-08T18:27:28.317Z","0.1.0-next.da482d8":"2026-03-08T18:36:34.264Z","0.1.0-next.cd6ddde":"2026-03-08T18:57:53.208Z","0.1.0-next.2e8f871":"2026-03-09T06:55:03.736Z","0.1.0-next.54361ad":"2026-03-09T07:23:08.954Z","0.1.0-next.ecd14b0":"2026-03-09T07:41:03.529Z","0.1.0-next.1aff057":"2026-03-09T07:59:23.683Z","0.1.0-next.7f47dc9":"2026-03-09T08:14:49.298Z","0.1.0-next.dc658d8":"2026-03-09T08:24:05.649Z","0.1.0-next.5edf83a":"2026-03-09T08:47:58.117Z","0.1.0-next.7620575":"2026-03-09T09:09:11.761Z","0.1.0-next.42e37d6":"2026-03-09T09:43:23.317Z","0.1.0-next.8eea450":"2026-03-09T09:52:31.373Z","0.1.0-next.3d3c11a":"2026-03-09T10:17:13.108Z","0.1.0-next.db8a792":"2026-03-09T10:26:15.482Z","0.1.0-next.825d81d":"2026-03-09T10:35:24.593Z","0.1.0-next.f102a1f":"2026-03-09T10:44:38.031Z","0.1.0-next.d57822a":"2026-03-09T10:53:29.937Z","0.1.0-next.e6d95ba":"2026-03-09T11:02:46.500Z","0.1.0-next.8c439ca":"2026-03-09T12:13:09.695Z","0.1.0-next.79cc382":"2026-03-09T13:28:02.710Z","0.1.0-next.99116da":"2026-03-09T13:56:58.821Z","0.1.0-next.05abcca":"2026-03-09T14:06:02.435Z","0.1.0-next.5afd4cc":"2026-03-09T14:15:09.684Z","0.1.0-next.b723073":"2026-03-09T15:21:01.152Z","0.1.0-next.cf9ccbe":"2026-03-09T15:30:18.223Z","0.1.0-next.43e1860":"2026-03-09T15:39:38.792Z","0.1.0-next.ea8374f":"2026-03-09T16:03:34.726Z","0.1.0-next.a561008":"2026-03-09T16:12:37.502Z","0.1.0-next.ecef372":"2026-03-09T16:21:50.541Z","0.1.0-next.4bacc0a":"2026-03-09T18:15:00.922Z","0.1.0-next.e3348dd":"2026-03-09T18:38:34.904Z","0.1.0-next.51b3c67":"2026-03-09T18:53:41.981Z","0.1.0-next.20260309220752.86ba4aa":"2026-03-09T22:08:22.233Z","0.1.0-next.20260309221658.4026b2f":"2026-03-09T22:17:27.225Z","0.1.0-next.20260309224302.7900546":"2026-03-09T22:43:31.845Z","0.1.0-next.20260309234412.2b212f9":"2026-03-09T23:44:40.863Z","0.0.1":"2026-03-10T08:39:44.791Z","0.1.0-next.20260310091226.6e094de":"2026-03-10T09:12:54.036Z","0.1.0-next.20260310092204.0696f63":"2026-03-10T09:22:33.056Z","0.1.0-next.20260310095337.b40dc37":"2026-03-10T09:54:05.093Z","0.1.0-next.20260310100243.25123f3":"2026-03-10T10:03:14.422Z","0.1.0-next.20260310101150.fb95ba6":"2026-03-10T10:12:19.952Z","0.1.0-next.20260310103443.f1ad21a":"2026-03-10T10:35:12.190Z","0.1.0-next.20260310104658.df8a32b":"2026-03-10T10:47:28.007Z","0.1.0-next.20260310113031.72ceeb1":"2026-03-10T11:31:00.482Z","0.1.0-next.20260311111211.c8fcd01":"2026-03-11T11:12:40.987Z","0.1.0-next.20260311112125.1f981e5":"2026-03-11T11:21:54.178Z","0.1.0-next.20260311113321.9fd5b72":"2026-03-11T11:33:49.308Z","0.1.0-next.20260311114304.c58b8d6":"2026-03-11T11:43:32.557Z","0.1.0-next.20260311115207.3cf4a4a":"2026-03-11T11:52:34.930Z","0.1.0-next.20260311120148.622eccc":"2026-03-11T12:02:17.694Z","0.1.0-next.20260311121007.b13ae76":"2026-03-11T12:10:35.937Z","0.1.0-next.20260311122444.6b21824":"2026-03-11T12:25:13.635Z","0.1.0-next.20260311123421.9dfa295":"2026-03-11T12:34:49.406Z","0.1.0-next.20260311124433.847aa43":"2026-03-11T12:45:03.092Z","0.1.0-next.20260311125345.fd0ce88":"2026-03-11T12:54:16.096Z","0.1.0-next.20260311130638.2cb82c9":"2026-03-11T13:07:08.261Z","0.1.0-next.20260311131830.8d83abc":"2026-03-11T13:18:59.187Z","0.1.0-next.20260311135008.aa88609":"2026-03-11T13:50:37.924Z","0.1.0-next.20260311142345.659471b":"2026-03-11T14:24:18.105Z","0.1.0-next.20260311143327.efbc737":"2026-03-11T14:33:56.357Z","0.1.0-next.20260311175548.08b0da4":"2026-03-11T17:56:18.296Z","0.1.0-next.20260311180717.b8357e7":"2026-03-11T18:07:46.643Z","0.1.0-next.20260311181601.2578268":"2026-03-11T18:16:30.741Z","0.1.0-next.20260311183847.4442d21":"2026-03-11T18:39:19.176Z","0.1.0-next.20260311191412.dbf2c9e":"2026-03-11T19:14:41.773Z","0.1.0-next.20260311192824.6a5196f":"2026-03-11T19:28:56.013Z","0.1.0-next.20260311194013.44072be":"2026-03-11T19:40:43.611Z","0.1.0-next.20260311195853.bddf577":"2026-03-11T19:59:23.385Z","0.1.0-next.20260311201121.a7649d3":"2026-03-11T20:11:51.494Z","0.1.0-next.20260311202849.4599d99":"2026-03-11T20:29:18.650Z","0.1.0-next.20260311204040.1902ae8":"2026-03-11T20:41:09.818Z","0.1.0-next.20260311205206.5489869":"2026-03-11T20:52:35.357Z","0.1.0-next.20260311210226.2953e8c":"2026-03-11T21:02:55.393Z","0.1.0-next.20260311211202.3306d50":"2026-03-11T21:12:34.638Z","0.1.0-next.20260311212401.ac5cb41":"2026-03-11T21:24:30.292Z","0.1.0-next.20260311213422.257c063":"2026-03-11T21:34:51.721Z","0.1.0-next.20260311214419.b8aa123":"2026-03-11T21:44:47.800Z","0.1.0-next.20260311215948.6971818":"2026-03-11T22:00:17.896Z","0.1.0-next.20260311221318.3aa27ea":"2026-03-11T22:13:48.372Z","0.1.0-next.20260311223112.d9c5724":"2026-03-11T22:31:45.307Z","0.1.0-next.20260311224126.4181b32":"2026-03-11T22:41:55.945Z","0.1.0-next.20260311225043.93e2321":"2026-03-11T22:51:13.636Z","0.1.0-next.20260311230843.9b77e1e":"2026-03-11T23:09:15.019Z","0.1.0-next.20260311231753.541e3a2":"2026-03-11T23:18:22.868Z","0.1.0-next.20260311233508.640d6f4":"2026-03-11T23:35:39.154Z","0.1.0-next.20260312000131.4dee9f9":"2026-03-12T00:02:00.942Z","0.1.0-next.20260312002211.9f89ca9":"2026-03-12T00:22:41.056Z","0.1.0-next.20260312003122.1984c3a":"2026-03-12T00:31:56.303Z","0.1.0-next.20260312004107.9663f0f":"2026-03-12T00:41:36.352Z","0.1.0-next.20260312005045.c80f859":"2026-03-12T00:51:17.820Z","0.1.0-next.20260312010003.ff941d1":"2026-03-12T01:00:32.369Z","0.1.0-next.20260312011609.4af9674":"2026-03-12T01:16:37.200Z","0.1.0-next.20260312013651.16e1009":"2026-03-12T01:37:21.437Z","0.1.0-next.20260312014941.f5691c3":"2026-03-12T01:50:12.113Z","0.1.0-next.20260312020223.9d4ce2f":"2026-03-12T02:02:52.816Z","0.1.0-next.20260312022020.7ee47a0":"2026-03-12T02:20:50.114Z","0.1.0-next.20260312023504.53f3a68":"2026-03-12T02:35:32.453Z","0.1.0-next.20260312024413.1cfd6e7":"2026-03-12T02:44:41.177Z","0.1.0-next.20260312025957.f62993b":"2026-03-12T03:00:26.828Z","0.1.0-next.20260312030839.be55fb0":"2026-03-12T03:09:09.647Z","0.1.0-next.20260312031852.42f4478":"2026-03-12T03:19:21.945Z","0.1.0-next.20260312033049.0d1d786":"2026-03-12T03:31:19.122Z","0.1.0-next.20260312034106.e38f285":"2026-03-12T03:41:36.225Z","0.1.0-next.20260312040703.3e16bb2":"2026-03-12T04:07:32.613Z","0.1.0-next.20260312042216.a5e5be4":"2026-03-12T04:22:45.869Z","0.1.0-next.20260312045322.3b87743":"2026-03-12T04:53:51.760Z","0.1.0-next.20260312052306.3df266b":"2026-03-12T05:23:36.768Z","0.1.0-next.20260312054540.b8ba84d":"2026-03-12T05:46:08.901Z","0.1.0-next.20260312061442.d69c54b":"2026-03-12T06:15:12.271Z","0.1.0-next.20260312065259.ac57686":"2026-03-12T06:53:29.244Z","0.1.0-next.20260312074432.6db7649":"2026-03-12T07:45:02.176Z","0.1.0-next.20260312082426.85d706c":"2026-03-12T08:24:59.650Z","0.1.0-next.20260312083347.ea37b82":"2026-03-12T08:34:14.934Z","0.1.0-next.20260312084251.460c1dd":"2026-03-12T08:43:20.350Z","0.1.0-next.20260312085512.4734d6d":"2026-03-12T08:55:42.391Z","0.1.0-next.20260312090655.5774f91":"2026-03-12T09:07:24.602Z","0.1.0-next.20260312093159.4ac7c26":"2026-03-12T09:32:27.546Z","0.1.0-next.20260312094651.109fbe6":"2026-03-12T09:47:21.764Z","0.1.0-next.20260312095616.49def5d":"2026-03-12T09:56:47.214Z","0.1.0-next.20260312100839.b69d6d0":"2026-03-12T10:09:08.366Z","0.1.0-next.20260312101856.dc882e0":"2026-03-12T10:19:26.855Z","0.1.0-next.20260312113817.ffb686a":"2026-03-12T11:38:47.009Z","0.1.0-next.20260312115747.e7d43ba":"2026-03-12T11:58:18.138Z","0.1.0-next.20260312120753.0fe6db8":"2026-03-12T12:08:26.215Z","0.1.0-next.20260312121723.6e32473":"2026-03-12T12:17:52.889Z","0.1.0-next.20260312122640.523d05a":"2026-03-12T12:27:09.592Z","0.1.0-next.20260312123940.aabcc39":"2026-03-12T12:40:09.636Z","0.1.0-next.20260312125553.3b82362":"2026-03-12T12:56:23.150Z","0.1.0-next.20260312130606.ce84278":"2026-03-12T13:06:37.526Z","0.1.0-next.20260312131523.7d036c5":"2026-03-12T13:15:52.729Z","0.1.0-next.20260312132525.bba1c30":"2026-03-12T13:25:55.162Z","0.1.0-next.20260312133459.0fd0125":"2026-03-12T13:35:29.874Z","0.1.0-next.20260312134622.396bc11":"2026-03-12T13:46:51.576Z","0.1.0-next.20260312135532.1bb9b63":"2026-03-12T13:56:03.089Z","0.1.0-next.20260312140454.b1093f0":"2026-03-12T14:05:23.323Z","0.1.0-next.20260312141410.79a7ea5":"2026-03-12T14:14:38.984Z","0.1.0-next.20260312142816.8c76468":"2026-03-12T14:28:46.531Z","0.1.0-next.20260312144036.15d54a0":"2026-03-12T14:41:05.419Z","0.1.0-next.20260312144956.7f8d239":"2026-03-12T14:50:28.600Z","0.1.0-next.20260312145916.cc0730d":"2026-03-12T14:59:43.132Z","0.1.0-next.20260312151344.2141da6":"2026-03-12T15:14:14.178Z","0.1.0-next.20260312154233.13e0d09":"2026-03-12T15:43:04.107Z","0.1.0-next.20260312155909.bb0c084":"2026-03-12T15:59:38.980Z","0.1.0-next.20260312162806.974ee00":"2026-03-12T16:28:36.173Z","0.1.0-next.20260312163734.dbddd4a":"2026-03-12T16:38:04.460Z","0.1.0-next.20260312164955.1a136a1":"2026-03-12T16:50:28.067Z","0.1.0-next.20260312173939.8794703":"2026-03-12T17:40:08.790Z","0.1.0-next.20260312175201.ff851f5":"2026-03-12T17:52:31.456Z","0.1.0-next.20260312181832.ae80d1d":"2026-03-12T18:19:01.923Z","0.1.0-next.20260312183115.5878262":"2026-03-12T18:31:45.410Z","0.1.0-next.20260312184340.76c6794":"2026-03-12T18:44:11.027Z","0.1.0-next.20260312190848.2b8b1f2":"2026-03-12T19:09:17.848Z","0.1.0-next.20260312192013.f853d7f":"2026-03-12T19:20:43.325Z","0.1.0-next.20260312192908.e9ab2f3":"2026-03-12T19:29:37.701Z","0.1.0-next.20260312194251.3513791":"2026-03-12T19:43:21.441Z","0.1.0-next.20260312201710.ac575d7":"2026-03-12T20:17:39.283Z","0.1.0-next.20260312204927.bdffd2f":"2026-03-12T20:49:57.491Z","0.1.0-next.20260312205836.3f00139":"2026-03-12T20:59:04.782Z","0.1.0-next.20260312213255.087c2da":"2026-03-12T21:33:25.423Z","0.1.0-next.20260312214548.04b47c5":"2026-03-12T21:46:18.325Z","0.1.0-next.20260312221445.cf276c0":"2026-03-12T22:15:13.991Z","0.1.0-next.20260312222503.67f1818":"2026-03-12T22:25:32.107Z","0.1.0-next.20260312223432.dbee1c6":"2026-03-12T22:35:01.219Z","0.1.0-next.20260312224358.98c7438":"2026-03-12T22:44:28.300Z","0.1.0-next.20260312230626.2080be3":"2026-03-12T23:06:56.042Z","0.1.0-next.20260312231527.bc1ba5d":"2026-03-12T23:15:58.013Z","0.1.0-next.20260312232917.345324b":"2026-03-12T23:29:48.013Z","0.1.0-next.20260312234152.3fe13ec":"2026-03-12T23:42:22.274Z","0.1.0-next.20260312235449.30bd4e5":"2026-03-12T23:55:19.168Z","0.1.0-next.20260313001325.4f54ecb":"2026-03-13T00:13:54.742Z","0.1.0-next.20260313002446.aed40df":"2026-03-13T00:25:14.051Z","0.1.0-next.20260313003358.9614291":"2026-03-13T00:34:28.789Z","0.1.0-next.20260313004500.03127e3":"2026-03-13T00:45:29.232Z","0.1.0-next.20260313005421.fcc677d":"2026-03-13T00:54:49.008Z","0.1.0-next.20260313011327.41449ad":"2026-03-13T01:13:56.960Z","0.1.0-next.20260313013110.b21c87a":"2026-03-13T01:31:39.114Z","0.1.0-next.20260313014941.91a0d49":"2026-03-13T01:50:11.886Z","0.1.0-next.20260313015925.9739858":"2026-03-13T01:59:53.591Z","0.1.0-next.20260313022434.de7fa3f":"2026-03-13T02:25:03.729Z","0.1.0-next.20260313023401.14cfb70":"2026-03-13T02:34:28.360Z","0.1.0-next.20260313065616.5c94215":"2026-03-13T06:56:43.969Z","0.1.0-next.20260313070718.4ef536a":"2026-03-13T07:07:48.726Z","0.1.0-next.20260313071656.58d6325":"2026-03-13T07:17:26.727Z","0.1.0-next.20260313072811.bc6248f":"2026-03-13T07:28:41.223Z","0.1.0-next.20260313073851.3ecae8f":"2026-03-13T07:39:20.974Z","0.1.0-next.20260313075816.9c13a81":"2026-03-13T07:58:46.008Z","0.1.0-next.20260313081404.9bedd7d":"2026-03-13T08:14:33.735Z","0.1.0-next.20260313082305.7d062bb":"2026-03-13T08:23:34.462Z","0.1.0-next.20260313083227.921457d":"2026-03-13T08:32:57.286Z","0.1.0-next.20260313084137.71aa205":"2026-03-13T08:42:07.132Z","0.1.0-next.20260313085242.811c649":"2026-03-13T08:53:09.402Z","0.1.0-next.20260313090158.938b3d6":"2026-03-13T09:02:29.103Z","0.1.0-next.20260313091127.3ccc794":"2026-03-13T09:11:56.727Z","0.1.0-next.20260313095017.17446":"2026-03-13T09:50:45.492Z","0.1.0-next.20260313100155.de56c67":"2026-03-13T10:02:24.426Z","0.1.0-next.20260313101125.bdc457c":"2026-03-13T10:11:54.635Z","0.1.0-next.20260313102051.0832c0d":"2026-03-13T10:21:23.819Z","0.1.0-next.20260313103048.7116aa3":"2026-03-13T10:31:18.868Z","0.1.0-next.20260313104011.f94d9c5":"2026-03-13T10:40:41.316Z","0.1.0-next.20260313104906.5499996":"2026-03-13T10:49:36.645Z","0.1.0-next.20260313105834.0ec7de9":"2026-03-13T10:59:03.716Z","0.1.0-next.20260313110731.2c12fef":"2026-03-13T11:08:01.653Z","0.1.0-next.20260313111743.97475e0":"2026-03-13T11:18:13.133Z","0.1.0-next.20260313112706.90d558a":"2026-03-13T11:27:34.569Z","0.1.0-next.20260313114550.6cd4303":"2026-03-13T11:46:21.253Z","0.1.0-next.20260313115759.0455aad":"2026-03-13T11:58:29.527Z","0.1.0-next.20260313121427.241210b":"2026-03-13T12:14:57.121Z","0.1.0-next.20260313122417.6f22116":"2026-03-13T12:24:47.581Z","0.1.0-next.20260313123739.a6ffdb8":"2026-03-13T12:38:09.609Z","0.1.0-next.20260313124721.2e2ac68":"2026-03-13T12:47:53.070Z","0.1.0-next.20260313125704.b32e3db":"2026-03-13T12:57:31.851Z","0.1.0-next.20260313131431.be93f64":"2026-03-13T13:15:01.303Z","0.1.0-next.20260313132411.f9027ab":"2026-03-13T13:24:40.611Z","0.1.0-next.20260313133430.eb005f0":"2026-03-13T13:35:01.025Z","0.1.0-next.20260313134550.ffe4c63":"2026-03-13T13:46:19.040Z","0.1.0-next.20260313135554.c691f27":"2026-03-13T13:56:24.770Z","0.1.0-next.20260313140613.1336811":"2026-03-13T14:06:43.629Z","0.1.0-next.20260313141548.e543407":"2026-03-13T14:16:16.743Z","0.1.0-next.20260313142512.6b674a5":"2026-03-13T14:25:42.834Z","0.1.0-next.20260313143501.091057b":"2026-03-13T14:35:30.612Z","0.1.0-next.20260313144454.9a1e774":"2026-03-13T14:45:24.286Z","0.1.0-next.20260313145509.212730d":"2026-03-13T14:55:38.667Z","0.1.0-next.20260313150444.482d0b6":"2026-03-13T15:05:13.435Z","0.1.0-next.20260313151408.cab39b4":"2026-03-13T15:14:38.704Z","0.1.0-next.20260313152343.8f59b22":"2026-03-13T15:24:12.782Z","0.1.0-next.20260313153312.6f28f9a":"2026-03-13T15:33:43.516Z","0.1.0-next.20260313154215.67842c0":"2026-03-13T15:42:44.584Z","0.1.0-next.20260313155148.1bc2c5d":"2026-03-13T15:52:19.066Z","0.1.0-next.20260313160153.647930e":"2026-03-13T16:02:20.161Z","0.1.0-next.20260313161330.fc7e79b":"2026-03-13T16:14:00.815Z","0.1.0-next.20260313162447.a80d58b":"2026-03-13T16:25:15.398Z","0.1.0-next.20260313163705.2b52caa":"2026-03-13T16:37:34.750Z","0.1.0-next.20260313164637.19b94d3":"2026-03-13T16:47:06.431Z","0.1.0-next.20260313165603.170ff37":"2026-03-13T16:56:32.348Z","0.1.0-next.20260313171424.f79a60c":"2026-03-13T17:14:54.313Z","0.1.0-next.20260313172525.f9ffc0a":"2026-03-13T17:25:55.254Z","0.1.0-next.20260313173609.802e432":"2026-03-13T17:36:39.056Z","0.1.0-next.20260313175157.f5b5823":"2026-03-13T17:52:27.890Z","0.1.0-next.20260313180310.82ff3fd":"2026-03-13T18:03:40.715Z","0.1.0-next.20260313181417.1b0ca0c":"2026-03-13T18:14:48.882Z","0.1.0-next.20260313182355.43d84a7":"2026-03-13T18:24:25.537Z","0.1.0-next.20260313183621.cd59693":"2026-03-13T18:36:51.287Z","0.1.0-next.20260313184643.dedecaa":"2026-03-13T18:47:12.686Z","0.1.0-next.20260313185628.6ad69a2":"2026-03-13T18:56:57.979Z","0.1.0-next.20260313190605.a600732":"2026-03-13T19:06:35.770Z","0.1.0-next.20260313191747.3d0284f":"2026-03-13T19:18:16.279Z","0.1.0-next.20260313193633.7a9bad6":"2026-03-13T19:37:04.108Z","0.1.0-next.20260313194735.d58a9a6":"2026-03-13T19:48:04.812Z","0.1.0-next.20260313195731.ce52c79":"2026-03-13T19:58:01.132Z","0.1.0-next.20260313200932.20f89ce":"2026-03-13T20:10:03.298Z","0.1.0-next.20260313201902.fc3fb8c":"2026-03-13T20:19:32.667Z","0.1.0-next.20260313202841.3d78fa3":"2026-03-13T20:29:11.102Z","0.1.0-next.20260313203751.f176359":"2026-03-13T20:38:20.676Z","0.1.0-next.20260313204831.ea7df97":"2026-03-13T20:48:59.883Z","0.1.0-next.20260313205757.522e3c6":"2026-03-13T20:58:27.382Z","0.1.0-next.20260313211430.67652c6":"2026-03-13T21:15:01.742Z","0.1.0-next.20260313212354.900151f":"2026-03-13T21:24:23.698Z","0.1.0-next.20260313213904.e8bcc1c":"2026-03-13T21:39:34.774Z","0.1.0-next.20260313214800.67f754a":"2026-03-13T21:48:30.757Z","0.1.0-next.20260313215752.1d3bc39":"2026-03-13T21:58:22.088Z","0.1.0-next.20260313221545.98c333c":"2026-03-13T22:16:15.025Z","0.1.0-next.20260313222621.41d9ff6":"2026-03-13T22:26:50.454Z","0.1.0-next.20260313223740.929290b":"2026-03-13T22:38:09.205Z","0.1.0-next.20260313224906.b90af17":"2026-03-13T22:49:35.393Z","0.1.0-next.20260313225840.50e78ab":"2026-03-13T22:59:22.971Z","0.1.0-next.20260313230945.d0ab53f":"2026-03-13T23:10:21.905Z","0.1.0-next.20260313233401.6a1c1d4":"2026-03-13T23:34:31.261Z","0.1.0-next.20260313234342.07ff431":"2026-03-13T23:44:11.674Z","0.1.0-next.20260313235538.bc3ded2":"2026-03-13T23:56:09.715Z","0.1.0-next.20260314002201.f57bb47":"2026-03-14T00:22:32.371Z","0.1.0-next.20260314003332.acc9cca":"2026-03-14T00:34:01.903Z","0.1.0-next.20260314004237.c613b8f":"2026-03-14T00:43:05.144Z","0.1.0-next.20260314005727.5faabc7":"2026-03-14T00:57:54.930Z","0.1.0-next.20260314012439.ff771f6":"2026-03-14T01:25:09.079Z","0.1.0-next.20260314013548.5bbd5b7":"2026-03-14T01:36:17.903Z","0.1.0-next.20260314014936.c61ae9b":"2026-03-14T01:50:07.512Z","0.1.0-next.20260314015903.7f033f7":"2026-03-14T01:59:33.122Z","0.1.0-next.20260314020827.a687d8b":"2026-03-14T02:08:55.328Z","0.1.0-next.20260314022233.3a2a6db":"2026-03-14T02:23:03.555Z","0.1.0-next.20260314023203.983f535":"2026-03-14T02:32:33.160Z","0.1.0-next.20260314024130.9859f02":"2026-03-14T02:42:01.585Z","0.1.0-next.20260314025048.a7089f4":"2026-03-14T02:51:17.433Z","0.1.0-next.20260314030109.80f8fff":"2026-03-14T03:01:38.681Z","0.1.0-next.20260314031914.1228b1c":"2026-03-14T03:19:44.591Z","0.1.0-next.20260314032930.527beea":"2026-03-14T03:30:00.861Z","0.1.0-next.20260314034312.144ff49":"2026-03-14T03:43:42.589Z","0.1.0-next.20260314035320.7041544":"2026-03-14T03:53:49.936Z","0.1.0-next.20260314040540.932907f":"2026-03-14T04:06:08.306Z","0.1.0-next.20260314042814.4e1ad4b":"2026-03-14T04:28:43.942Z","0.1.0-next.20260314044913.b106499":"2026-03-14T04:49:43.173Z","0.1.0-next.20260314050741.16b8cc1":"2026-03-14T05:08:10.836Z","0.1.0-next.20260314051633.48b9f78":"2026-03-14T05:17:02.121Z","0.1.0-next.20260314052827.9c31ad3":"2026-03-14T05:28:58.638Z","0.1.0-next.20260314054138.4550c35":"2026-03-14T05:42:07.970Z","0.1.0-next.20260314055156.b969862":"2026-03-14T05:52:26.381Z","0.1.0-next.20260314060142.8a54782":"2026-03-14T06:02:12.707Z","0.1.0-next.20260314061422.83a114b":"2026-03-14T06:14:51.811Z","0.1.0-next.20260314062353.61b5ce9":"2026-03-14T06:24:22.615Z","0.1.0-next.20260314063327.5081351":"2026-03-14T06:33:57.054Z","0.1.0-next.20260314065044.62a48bc":"2026-03-14T06:51:14.888Z","0.1.0-next.20260314070135.1b81456":"2026-03-14T07:02:05.425Z","0.1.0-next.20260314071436.96ec928":"2026-03-14T07:15:06.352Z","0.1.0-next.20260314072546.6abadae":"2026-03-14T07:26:16.363Z","0.1.0-next.20260314081635.619d47d":"2026-03-14T08:17:06.015Z","0.1.0-next.20260314084240.3ee51b4":"2026-03-14T08:43:09.577Z","0.1.0-next.20260314085956.5e6aba2":"2026-03-14T09:00:26.040Z","0.1.0-next.20260314091445.af5c2fa":"2026-03-14T09:15:15.085Z","0.1.0-next.20260314092537.688ae36":"2026-03-14T09:26:07.832Z","0.1.0-next.20260314093810.8bbf02d":"2026-03-14T09:38:39.341Z","0.1.0-next.20260314095932.3bb9ad9":"2026-03-14T10:00:00.947Z","0.1.0-next.20260314101434.d28301b":"2026-03-14T10:15:04.138Z","0.1.0-next.20260314102857.c454687":"2026-03-14T10:29:26.355Z","0.1.0-next.20260314103842.dedc9b8":"2026-03-14T10:39:11.280Z","0.1.0-next.20260314105020.196f533":"2026-03-14T10:50:49.220Z","0.1.0-next.20260314110006.84777dc":"2026-03-14T11:00:34.458Z","0.1.0-next.20260314111431.17daf5c":"2026-03-14T11:15:01.113Z","0.1.0-next.20260314112419.3d0d1eb":"2026-03-14T11:24:49.585Z","0.1.0-next.20260314113405.b824792":"2026-03-14T11:34:35.261Z","0.1.0-next.20260314114342.c01fdde":"2026-03-14T11:44:09.461Z","0.1.0-next.20260314115303.33acda8":"2026-03-14T11:53:33.264Z","0.1.0-next.20260314120228.424084d":"2026-03-14T12:02:56.364Z","0.1.0-next.20260314121448.39a2a67":"2026-03-14T12:15:16.720Z","0.1.0-next.20260314122443.c4edfc4":"2026-03-14T12:25:14.010Z","0.1.0-next.20260314123438.8f7d697":"2026-03-14T12:35:07.451Z","0.1.0-next.20260314124548.2c058f9":"2026-03-14T12:46:17.736Z","0.1.0-next.20260314125511.b8336ef":"2026-03-14T12:55:40.534Z","0.1.0-next.20260314131430.612c2d9":"2026-03-14T13:14:58.388Z","0.1.0-next.20260314133625.67e9a22":"2026-03-14T13:36:56.100Z","0.1.0-next.20260314134641.d2268b0":"2026-03-14T13:47:11.227Z","0.1.0-next.20260314140607.3c168cf":"2026-03-14T14:06:37.860Z","0.1.0-next.20260314141630.9c766f5":"2026-03-14T14:16:58.585Z","0.1.0-next.20260314142958.efb77b8":"2026-03-14T14:30:27.739Z","0.1.0-next.20260314143945.86c5371":"2026-03-14T14:40:15.213Z","0.1.0-next.20260314145546.4fa4c15":"2026-03-14T14:56:16.770Z","0.1.0-next.20260314150547.fe24e21":"2026-03-14T15:06:17.214Z","0.1.0-next.20260314151540.a5ee1c1":"2026-03-14T15:16:10.631Z","0.1.0-next.20260314153240.c3de4c4":"2026-03-14T15:33:08.806Z","0.1.0-next.20260314154445.5c1ffa7":"2026-03-14T15:45:15.291Z","0.1.0-next.20260314155430.690f189":"2026-03-14T15:54:59.556Z","0.1.0-next.20260314160548.b8f63d3":"2026-03-14T16:06:17.016Z","0.1.0-next.20260314162331.2528997":"2026-03-14T16:24:01.014Z","0.1.0-next.20260314163935.7eab789":"2026-03-14T16:40:06.276Z","0.1.0-next.20260314164902.f06c35f":"2026-03-14T16:49:31.629Z","0.1.0-next.20260314165829.bd064ad":"2026-03-14T16:58:58.384Z","0.1.0-next.20260314170800.975d016":"2026-03-14T17:08:29.787Z","0.1.0-next.20260314171805.1acdc7b":"2026-03-14T17:18:35.017Z","0.1.0-next.20260314172730.7acecaa":"2026-03-14T17:27:59.537Z","0.1.0-next.20260314174032.2efecf1":"2026-03-14T17:41:02.430Z","0.1.0-next.20260314175013.f3a21c3":"2026-03-14T17:50:43.680Z","0.1.0-next.20260314180019.37b2021":"2026-03-14T18:00:49.672Z","0.1.0-next.20260314184628.0b3d329":"2026-03-14T18:46:57.471Z","0.1.0-next.20260314185749.27b4d76":"2026-03-14T18:58:19.614Z","0.1.0-next.20260314191040.7b23822":"2026-03-14T19:11:10.331Z","0.1.0-next.20260314191959.561a8ff":"2026-03-14T19:20:29.460Z","0.1.0-next.20260314192948.40fa6b0":"2026-03-14T19:30:19.032Z","0.1.0-next.20260314193933.7535dc4":"2026-03-14T19:40:04.694Z","0.1.0-next.20260314194830.effa20e":"2026-03-14T19:48:59.847Z","0.1.0-next.20260314195801.513b69b":"2026-03-14T19:58:31.900Z","0.1.0-next.20260314200945.89b5ad6":"2026-03-14T20:10:15.626Z","0.1.0-next.20260314202451.a1de7b5":"2026-03-14T20:25:20.257Z","0.1.0-next.20260314213831.f3d55aa":"2026-03-14T21:39:02.288Z","0.1.0-next.20260314215412.0d8c653":"2026-03-14T21:54:46.956Z","0.1.0-next.20260314220412.d06da3a":"2026-03-14T22:04:43.449Z","0.1.0-next.20260314223106.b9ec14a":"2026-03-14T22:31:36.398Z","0.1.0-next.20260314224038.6f2ac9c":"2026-03-14T22:41:07.983Z","0.1.0-next.20260314225213.baf3742":"2026-03-14T22:52:43.526Z","0.1.0-next.20260314230147.b506012":"2026-03-14T23:02:17.911Z","0.1.0-next.20260314231521.4e72542":"2026-03-14T23:15:48.706Z","0.1.0-next.20260314232703.fec614d":"2026-03-14T23:27:33.040Z","0.1.0-next.20260314233651.f036ab8":"2026-03-14T23:37:22.256Z","0.1.0-next.20260314234549.f73f12b":"2026-03-14T23:46:18.205Z","0.1.0-next.20260314235515.9f5cae2":"2026-03-14T23:55:44.676Z","0.1.0-next.20260315001443.c709e0d":"2026-03-15T00:15:13.067Z","0.1.0-next.20260315002428.db46f37":"2026-03-15T00:24:58.246Z","0.1.0-next.20260315003403.dca0f1a":"2026-03-15T00:34:32.819Z","0.1.0-next.20260315004339.300feba":"2026-03-15T00:44:11.268Z","0.1.0-next.20260315005411.bd4293e":"2026-03-15T00:54:40.639Z","0.1.0-next.20260315010359.4182301":"2026-03-15T01:04:27.456Z","0.1.0-next.20260315011834.8b8d470":"2026-03-15T01:19:04.474Z","0.1.0-next.20260315012850.5dd3dc9":"2026-03-15T01:29:21.053Z","0.1.0-next.20260315013848.6a545b8":"2026-03-15T01:39:17.698Z","0.1.0-next.20260315015105.622cd24":"2026-03-15T01:51:34.345Z","0.1.0-next.20260315020044.243cf5d":"2026-03-15T02:01:12.239Z","0.1.0-next.20260315021925.35f5f50":"2026-03-15T02:19:55.025Z","0.1.0-next.20260315023201.634104b":"2026-03-15T02:32:32.022Z","0.1.0-next.20260315024252.fd9af69":"2026-03-15T02:43:30.424Z","0.1.0-next.20260315025216.176ebcb":"2026-03-15T02:52:45.953Z","0.1.0-next.20260315030154.d4d69f4":"2026-03-15T03:02:24.788Z","0.1.0-next.20260315031752.71eedd1":"2026-03-15T03:18:22.349Z","0.1.0-next.20260315032741.ffab74b":"2026-03-15T03:28:12.178Z","0.1.0-next.20260315033732.69b9302":"2026-03-15T03:38:03.343Z","0.1.0-next.20260315034707.c856200":"2026-03-15T03:47:38.013Z","0.1.0-next.20260315035637.8c6aef5":"2026-03-15T03:57:30.983Z","0.1.0-next.20260315040641.5488026":"2026-03-15T04:07:09.844Z","0.1.0-next.20260315041621.6d31f73":"2026-03-15T04:16:51.794Z","0.1.0-next.20260315042606.45075a7":"2026-03-15T04:26:36.703Z","0.1.0-next.20260315043546.fb082c5":"2026-03-15T04:36:15.843Z","0.1.0-next.20260315044531.8faa639":"2026-03-15T04:46:01.280Z","0.1.0-next.20260315045509.1fe25f7":"2026-03-15T04:55:38.580Z","0.1.0-next.20260315050438.c024ecc":"2026-03-15T05:05:06.616Z","0.1.0-next.20260315051443.7ca39af":"2026-03-15T05:15:13.930Z","0.1.0-next.20260315052710.fc44124":"2026-03-15T05:27:44.216Z","0.1.0-next.20260315053654.14e8be5":"2026-03-15T05:37:23.151Z","0.1.0-next.20260315054645.3d4414d":"2026-03-15T05:47:15.124Z","0.1.0-next.20260315061513.e92921e":"2026-03-15T06:15:43.168Z","0.1.0-next.20260315063320.dfcbee4":"2026-03-15T06:33:50.223Z","0.1.0-next.20260315072759.81589d2":"2026-03-15T07:28:29.533Z","0.1.0-next.20260315073712.55be17e":"2026-03-15T07:37:42.574Z","0.1.0-next.20260315074903.9cd5b3a":"2026-03-15T07:49:34.149Z","0.1.0-next.20260315080033.e8e1cf2":"2026-03-15T08:01:02.318Z","0.1.0-next.20260315081503.62ca1aa":"2026-03-15T08:15:32.984Z","0.1.0-next.20260315082451.d204cc8":"2026-03-15T08:25:21.316Z","0.1.0-next.20260315090810.95e3902":"2026-03-15T09:08:37.737Z","0.1.0-next.20260315091745.2b6a5a1":"2026-03-15T09:18:14.976Z","0.1.0-next.20260315093309.4219c80":"2026-03-15T09:33:39.298Z","0.1.0-next.20260315094304.47fe87c":"2026-03-15T09:43:33.883Z","0.1.0-next.20260315095232.9488bc8":"2026-03-15T09:53:02.504Z","0.1.0-next.20260315101233.aa1def7":"2026-03-15T10:13:02.444Z","0.1.0-next.20260315102223.17fea52":"2026-03-15T10:22:53.116Z","0.1.0-next.20260315103127.d79f0be":"2026-03-15T10:31:56.440Z","0.1.0-next.20260315104745.45b9758":"2026-03-15T10:48:13.931Z","0.1.0-next.20260315105818.53db2a6":"2026-03-15T10:58:48.811Z","0.1.0-next.20260315110754.ae43e21":"2026-03-15T11:08:24.389Z","0.1.0-next.20260315112357.5dce0ab":"2026-03-15T11:24:27.735Z","0.1.0-next.20260315113359.9d1a091":"2026-03-15T11:34:29.123Z","0.1.0-next.20260315115117.6fc2338":"2026-03-15T11:51:47.318Z","0.1.0-next.20260315121447.3aaf73e":"2026-03-15T12:15:17.633Z","0.1.0-next.20260315122454.73f6f1d":"2026-03-15T12:25:24.896Z","0.1.0-next.20260315124330.e2bcd07":"2026-03-15T12:44:00.383Z","0.1.0-next.20260315125300.e3c76e3":"2026-03-15T12:53:30.157Z","0.1.0-next.20260315130341.eecd9c0":"2026-03-15T13:04:10.794Z","0.1.0-next.20260315131320.1315532":"2026-03-15T13:13:49.740Z","0.1.0-next.20260315132300.4db6589":"2026-03-15T13:23:30.900Z","0.1.0-next.20260315133458.08c909c":"2026-03-15T13:35:27.318Z","0.1.0-next.20260315135430.69b35f3":"2026-03-15T13:55:01.359Z","0.1.0-next.20260315140420.b6ff155":"2026-03-15T14:04:50.617Z","0.1.0-next.20260315141628.2f628fd":"2026-03-15T14:16:58.082Z","0.1.0-next.20260315143603.33fe49d":"2026-03-15T14:36:32.452Z","0.1.0-next.20260315150607.02418df":"2026-03-15T15:06:37.926Z","0.1.0-next.20260315151559.fd0d6a0":"2026-03-15T15:16:28.521Z","0.1.0-next.20260315152508.6ff63c3":"2026-03-15T15:25:39.985Z","0.1.0-next.20260315153618.b5ff23c":"2026-03-15T15:36:49.056Z","0.1.0-next.20260315154706.1bec247":"2026-03-15T15:47:36.304Z","0.1.0-next.20260315155609.6cd794b":"2026-03-15T15:56:39.933Z","0.1.0-next.20260315160533.4ae16b3":"2026-03-15T16:06:04.477Z","0.1.0-next.20260315162635.53d353c":"2026-03-15T16:27:05.400Z","0.1.0-next.20260315163741.451b662":"2026-03-15T16:38:11.968Z","0.1.0-next.20260315164736.cc309c2":"2026-03-15T16:48:05.929Z","0.1.0-next.20260315170015.95e16d2":"2026-03-15T17:00:45.138Z","0.1.0-next.20260315171123.630e8b7":"2026-03-15T17:11:52.307Z","0.1.0-next.20260315173827.5d4af11":"2026-03-15T17:38:56.372Z","0.1.0-next.20260315174803.a47ae60":"2026-03-15T17:48:33.905Z","0.1.0-next.20260315175744.e4635fa":"2026-03-15T17:58:15.172Z","0.1.0-next.20260315180727.5bc80fb":"2026-03-15T18:07:57.291Z","0.1.0-next.20260315181746.aa6d3a6":"2026-03-15T18:18:16.864Z","0.1.0-next.20260315182915.99c252e":"2026-03-15T18:29:45.257Z","0.1.0-next.20260315183854.bd6be8a":"2026-03-15T18:39:22.424Z","0.1.0-next.20260315184833.414508":"2026-03-15T18:49:03.414Z","0.1.0-next.20260315185832.e03a6b9":"2026-03-15T18:59:01.097Z","0.1.0-next.20260315192449.7aa7717":"2026-03-15T19:25:19.509Z","0.1.0-next.20260315193426.240ca84":"2026-03-15T19:34:56.099Z","0.1.0-next.20260315194414.538ac2f":"2026-03-15T19:44:43.784Z","0.1.0-next.20260315195312.ca9e6a7":"2026-03-15T19:53:41.777Z","0.1.0-next.20260315200243.f6b1fc0":"2026-03-15T20:03:13.808Z","0.1.0-next.20260315202501.c487de2":"2026-03-15T20:25:32.261Z","0.1.0-next.20260315203445.1a81f7e":"2026-03-15T20:35:14.602Z","0.1.0-next.20260315204418.568f8d4":"2026-03-15T20:44:48.935Z","0.1.0-next.20260315205408.d23aa6b":"2026-03-15T20:54:38.286Z","0.1.0-next.20260315210400.cbea75d":"2026-03-15T21:04:30.972Z","0.1.0-next.20260315211314.696bf64":"2026-03-15T21:13:49.063Z","0.1.0-next.20260315212415.af856e4":"2026-03-15T21:24:45.314Z","0.1.0-next.20260315213320.fc170fc":"2026-03-15T21:33:49.071Z","0.1.0-next.20260315214252.d80d4af":"2026-03-15T21:43:19.803Z","0.1.0-next.20260315215236.7d474e3":"2026-03-15T21:53:07.033Z","0.1.0-next.20260315220230.d190a59":"2026-03-15T22:03:01.427Z","0.1.0-next.20260315221552.babfe2b":"2026-03-15T22:16:22.817Z","0.1.0-next.20260315222516.607f831":"2026-03-15T22:25:46.993Z","0.1.0-next.20260315223455.af6bec4":"2026-03-15T22:35:24.879Z","0.1.0-next.20260315224434.dcb91e5":"2026-03-15T22:45:04.865Z","0.1.0-next.20260315225425.5eb18ae":"2026-03-15T22:54:56.122Z","0.1.0-next.20260315230350.828f038":"2026-03-15T23:04:20.185Z","0.1.0-next.20260315231638.f8a1770":"2026-03-15T23:17:09.398Z","0.1.0-next.20260315232557.d3103e7":"2026-03-15T23:26:27.445Z","0.1.0-next.20260315234341.4098bfe":"2026-03-15T23:44:11.321Z","0.1.0-next.20260315235332.8fe3454":"2026-03-15T23:54:03.668Z","0.1.0-next.20260316000347.6d32296":"2026-03-16T00:04:17.562Z","0.1.0-next.20260316003859.e62e4b5":"2026-03-16T00:39:29.301Z","0.1.0-next.20260316004823.98ff073":"2026-03-16T00:48:53.490Z","0.1.0-next.20260316010711.4ae1e98":"2026-03-16T01:07:41.717Z","0.1.0-next.20260316012436.774bd98":"2026-03-16T01:25:08.994Z","0.1.0-next.20260316013439.0b9bc9a":"2026-03-16T01:35:09.439Z","0.1.0-next.20260316014822.bd777c6":"2026-03-16T01:48:51.488Z","0.1.0-next.20260316015845.d77d0e6":"2026-03-16T01:59:16.538Z","0.1.0-next.20260316022842.8e36041":"2026-03-16T02:29:12.898Z","0.1.0-next.20260316024859.d774cd5":"2026-03-16T02:49:29.827Z","0.1.0-next.20260316025913.cecdca5":"2026-03-16T02:59:43.867Z","0.1.0-next.20260316030859.6b0c154":"2026-03-16T03:09:30.719Z","0.1.0-next.20260316031810.de0bf42":"2026-03-16T03:18:39.963Z","0.1.0-next.20260316032801.5ecf76c":"2026-03-16T03:28:32.498Z","0.1.0-next.20260316033715.b28ddad":"2026-03-16T03:37:45.066Z","0.1.0-next.20260316034650.52184ce":"2026-03-16T03:47:20.625Z","0.1.0-next.20260316035614.3514cac":"2026-03-16T03:56:44.582Z","0.1.0-next.20260316040523.254ca60":"2026-03-16T04:05:51.624Z","0.1.0-next.20260316041646.370559f":"2026-03-16T04:17:17.418Z","0.1.0-next.20260316043447.fb3afbd":"2026-03-16T04:35:17.250Z","0.1.0-next.20260316045331.6101cdf":"2026-03-16T04:54:00.639Z","0.1.0-next.20260316051748.dda7485":"2026-03-16T05:18:18.703Z","0.1.0-next.20260316052742.d364230":"2026-03-16T05:28:12.058Z","0.1.0-next.20260316053751.5111dcc":"2026-03-16T05:38:20.439Z","0.1.0-next.20260316055425.05c950b":"2026-03-16T05:54:55.159Z","0.1.0-next.20260316063515.ac93649":"2026-03-16T06:35:45.527Z","0.1.0-next.20260316064458.15ec603":"2026-03-16T06:45:29.756Z","0.1.0-next.20260316065647.c315bf7":"2026-03-16T06:57:17.991Z","0.1.0-next.20260316074621.ff9f69b":"2026-03-16T07:46:51.568Z","0.1.0-next.20260316075552.db6316b":"2026-03-16T07:56:22.457Z","0.1.0-next.20260316080543.2bd2bb1":"2026-03-16T08:06:11.383Z","0.1.0-next.20260316081529.6d45496":"2026-03-16T08:15:59.363Z","0.1.0-next.20260316083447.0875cf5":"2026-03-16T08:35:18.455Z","0.1.0-next.20260316084545.45c865c":"2026-03-16T08:46:15.702Z","0.1.0-next.20260316085529.8ccc58f":"2026-03-16T08:55:59.898Z","0.1.0-next.20260316090523.ee31d8c":"2026-03-16T09:05:53.794Z","0.1.0-next.20260316091516.14bcd2a":"2026-03-16T09:15:47.016Z","0.1.0-next.20260316092458.51ad376":"2026-03-16T09:25:25.858Z","0.1.0-next.20260316093426.c3e3340":"2026-03-16T09:34:56.742Z","0.1.0-next.20260316094948.e3db329":"2026-03-16T09:50:19.411Z","0.1.0-next.20260316100104.f68a94c":"2026-03-16T10:01:36.134Z","0.1.0-next.20260316101613.7f239e5":"2026-03-16T10:16:43.497Z","0.1.0-next.20260316102614.3b328ae":"2026-03-16T10:26:43.915Z","0.1.0-next.20260316103904.6f58955":"2026-03-16T10:39:32.905Z","0.1.0-next.20260316104859.8c99e59":"2026-03-16T10:49:29.799Z","0.1.0-next.20260316105914.a871726":"2026-03-16T10:59:43.533Z","0.1.0-next.20260316114313.0904ecc":"2026-03-16T11:43:43.995Z","0.1.0-next.20260316121638.112b5ba":"2026-03-16T12:17:08.937Z","0.1.0-next.20260316124223.11cf04b":"2026-03-16T12:42:54.838Z","0.1.0-next.20260316125954.1459d48":"2026-03-16T13:00:26.399Z","0.1.0-next.20260316135117.06cc0ed":"2026-03-16T13:51:46.628Z","0.1.0-next.20260316141146.05eed6f":"2026-03-16T14:12:17.257Z","0.1.0-next.20260316143256.9b12104":"2026-03-16T14:33:24.245Z","0.1.0-next.20260316150617.ad5ff74":"2026-03-16T15:06:46.671Z","0.1.0-next.20260316155250.b76d8d9":"2026-03-16T15:53:20.986Z","0.1.0-next.20260316164856.2953e81":"2026-03-16T16:49:26.617Z","0.1.0-next.20260316171723.79fc898":"2026-03-16T17:17:54.531Z","0.1.0-next.20260316172730.80520f5":"2026-03-16T17:28:00.322Z","0.1.0-next.20260316175500.c989c9a":"2026-03-16T17:55:29.555Z","0.1.0-next.20260317043839.428e910":"2026-03-17T04:39:09.594Z","0.1.0-next.20260317071502.e2a01d7":"2026-03-17T07:15:33.011Z","0.1.0-next.20260317073830.842c87f":"2026-03-17T07:39:00.699Z","0.1.0-next.20260317075735.1814649":"2026-03-17T07:58:05.172Z","0.1.0-next.20260317093222.856ffd3":"2026-03-17T09:32:54.119Z","0.1.0-next.20260317100131.5a0cccc":"2026-03-17T10:02:01.139Z","0.1.0-next.20260317105103.c0536c9":"2026-03-17T10:51:33.802Z","0.1.0-next.20260317111652.4340195":"2026-03-17T11:17:23.081Z","0.1.0-next.20260317112129.29c742b":"2026-03-17T11:21:59.779Z","0.1.0-next.20260317113103.2e44664":"2026-03-17T11:31:33.697Z","0.1.0-next.20260317121209.df02af6":"2026-03-17T12:12:41.022Z","0.1.0-next.20260317140751.b78a937":"2026-03-17T14:08:21.049Z","0.1.0-next.20260317141255.c811a1d":"2026-03-17T14:13:26.981Z","0.1.0-next.20260317141825.528a24b":"2026-03-17T14:18:58.105Z","0.1.0-next.20260317155723.0df284c":"2026-03-17T15:57:57.761Z","0.1.0-next.20260317161824.2e4bade":"2026-03-17T16:18:54.532Z","0.1.0-next.20260317165501.270faf5":"2026-03-17T16:55:32.170Z","0.1.0-next.20260317173858.ceb224b":"2026-03-17T17:39:29.136Z","0.1.0-next.20260317184111.ee19292":"2026-03-17T18:41:42.629Z","0.1.0-next.20260317190253.05fd828":"2026-03-17T19:03:24.814Z","0.1.0-next.20260317191509.f6a12b2":"2026-03-17T19:15:39.526Z","0.1.0-next.20260317192449.f0d99ea":"2026-03-17T19:25:20.508Z","0.1.0-next.20260317193534.3b5ea96":"2026-03-17T19:36:05.066Z","0.1.0-next.20260318055008.2183859":"2026-03-18T05:50:37.460Z","0.1.0-next.20260318090717.cef738d":"2026-03-18T09:07:50.222Z","0.1.0-next.20260318104124.97153f5":"2026-03-18T10:41:53.115Z","0.1.0-next.20260318105301.54a3bca":"2026-03-18T10:53:31.674Z","0.1.0-next.20260318110652.36d9680":"2026-03-18T11:07:23.310Z","0.1.0-next.20260318112422.6d0240f":"2026-03-18T11:24:52.351Z","0.1.0-next.20260318195259.6f88dc1":"2026-03-18T19:53:31.224Z","0.1.0-next.20260318201252.11f07e5":"2026-03-18T20:13:23.985Z","0.1.0-next.20260318205137.d10590f":"2026-03-18T20:52:07.731Z","0.1.0-next.20260318210332.da23bc8":"2026-03-18T21:04:04.281Z","0.1.0-next.20260318213531.df6c5e5":"2026-03-18T21:36:01.912Z","0.1.0-next.20260318214536.a449b03":"2026-03-18T21:46:08.248Z","0.1.0-next.20260319002512.42d3649":"2026-03-19T00:25:43.594Z","0.1.0-next.20260319005756.bd8aab7":"2026-03-19T00:58:27.378Z","0.1.0-next.20260319011330.1872f43":"2026-03-19T01:14:01.934Z","0.1.0-next.20260319012518.4e60e53":"2026-03-19T01:25:51.017Z","0.1.0-next.20260319020925.4e43bb9":"2026-03-19T02:09:58.378Z","0.1.0-next.20260319022335.0b978fb":"2026-03-19T02:24:06.398Z","0.1.0-next.20260319025208.0f73935":"2026-03-19T02:52:39.522Z","0.1.0-next.20260319032430.f3500a8":"2026-03-19T03:25:01.756Z","0.1.0-next.20260319034811.3c11c3c":"2026-03-19T03:48:43.825Z","0.1.0-next.20260319064032.aef02f1":"2026-03-19T06:41:03.253Z","0.1.0-next.20260319072229.78ad251":"2026-03-19T07:23:03.031Z","0.1.0-next.20260319074633.ca173c5":"2026-03-19T07:47:05.900Z","0.1.0-next.20260319080117.32d836e":"2026-03-19T08:01:49.195Z","0.1.0-next.20260319081402.9c20f30":"2026-03-19T08:14:34.110Z","0.1.0-next.20260319083852.e7e9541":"2026-03-19T08:39:23.894Z","0.1.0-next.20260319084531.6abe996":"2026-03-19T08:46:03.661Z","0.1.0-next.20260319091316.2207d56":"2026-03-19T09:13:47.811Z","0.1.0-next.20260319091914.3cc4a0f":"2026-03-19T09:19:46.521Z","0.1.0-next.20260319092500.d480dea":"2026-03-19T09:25:33.010Z","0.1.0-next.20260319093124.314ba2a":"2026-03-19T09:31:54.509Z","0.1.0-next.20260319093651.ee1fef7":"2026-03-19T09:37:22.018Z","0.1.0-next.20260319094410.e14209e":"2026-03-19T09:44:42.310Z","0.1.0-next.20260319095231.b5bc044":"2026-03-19T09:53:04.747Z","0.1.0-next.20260319100151.771f36b":"2026-03-19T10:02:22.445Z","0.1.0-next.20260319102312.2b84299":"2026-03-19T10:23:43.646Z","0.1.0-next.20260319105816.603b2a5":"2026-03-19T10:58:48.674Z","0.1.0-next.20260319113541.525581d":"2026-03-19T11:36:13.417Z","0.1.0-next.20260319114828.fc75129":"2026-03-19T11:49:00.561Z","0.1.0-next.20260319115509.9ac245d":"2026-03-19T11:55:40.703Z","0.1.0-next.20260319120556.1841426":"2026-03-19T12:06:32.360Z","0.1.0-next.20260319121342.5b8415d":"2026-03-19T12:14:13.030Z","0.1.0-next.20260319122208.21ca761":"2026-03-19T12:22:39.443Z","0.1.0-next.20260319123639.0c09c82":"2026-03-19T12:37:12.941Z","0.1.0-next.20260319131717.0f95f1d":"2026-03-19T13:17:50.101Z","0.1.0-next.20260319132306.3d1cf78":"2026-03-19T13:23:38.825Z","0.1.0-next.20260319132825.5b2bb8e":"2026-03-19T13:28:55.371Z","0.1.0-next.20260319141650.4b29832":"2026-03-19T14:17:25.233Z","0.1.0-next.20260319150750.0626c79":"2026-03-19T15:08:22.156Z","0.1.0-next.20260319154119.7c9b7c3":"2026-03-19T15:41:52.260Z","0.1.0-next.20260319155955.9914157":"2026-03-19T16:00:28.227Z","0.1.0-next.20260319163959.54f512f":"2026-03-19T16:40:33.294Z","0.1.0-next.20260319165912.ea44471":"2026-03-19T16:59:44.977Z","0.1.0-next.20260319170526.6f634c2":"2026-03-19T17:05:59.781Z","0.1.0-next.20260319174813.aaf01f3":"2026-03-19T17:48:46.686Z","0.1.0-next.20260319175700.2c3c7a0":"2026-03-19T17:57:32.622Z","0.1.0-next.20260319180247.60cdd24":"2026-03-19T18:03:19.964Z","0.1.0-next.20260319180922.73fa027":"2026-03-19T18:09:54.766Z","0.1.0-next.20260319181517.ecacde5":"2026-03-19T18:15:50.281Z","0.1.0-next.20260319182931.a698044":"2026-03-19T18:30:06.068Z","0.1.0-next.20260319190814.a1e96af":"2026-03-19T19:08:45.808Z","0.1.0-next.20260319194246.ea4981a":"2026-03-19T19:43:18.022Z","0.1.0-next.20260319201359.7c7956d":"2026-03-19T20:14:32.391Z","0.1.0-next.20260319202108.8ce4fb8":"2026-03-19T20:21:38.973Z","0.1.0-next.20260319202924.e7b762e":"2026-03-19T20:29:58.318Z","0.1.0-next.20260319210002.68fc000":"2026-03-19T21:00:34.637Z","0.1.0-next.20260319210608.38a051d":"2026-03-19T21:06:40.965Z","0.1.0-next.20260319212034.1caa793":"2026-03-19T21:21:06.650Z","0.1.0-next.20260319214700.205b2e5":"2026-03-19T21:47:32.729Z","0.1.0-next.20260319215647.755f744":"2026-03-19T21:57:20.023Z","0.1.0-next.20260319221353.0c380f9":"2026-03-19T22:14:27.609Z","0.1.0-next.20260319222439.970e043":"2026-03-19T22:25:13.853Z","0.1.0-next.20260319223058.690bbc7":"2026-03-19T22:31:31.071Z","0.1.0-next.20260319230120.502321c":"2026-03-19T23:01:53.694Z","0.1.0-next.20260319232709.bdc79a0":"2026-03-19T23:27:41.958Z","0.1.0-next.20260319233801.db80510":"2026-03-19T23:38:35.964Z","0.1.0-next.20260320000822.5a052ce":"2026-03-20T00:08:56.362Z","0.1.0-next.20260320011904.0fc2280":"2026-03-20T01:19:38.057Z","0.1.0-next.20260320014650.e409f12":"2026-03-20T01:47:23.704Z","0.1.0-next.20260320021451.5535565":"2026-03-20T02:15:23.109Z","0.1.0-next.20260320073714.212ca65":"2026-03-20T07:37:46.085Z","0.1.0-next.20260320075454.6d860b3":"2026-03-20T07:55:27.771Z","0.1.0-next.20260320090137.c523858":"2026-03-20T09:02:11.198Z","0.1.0-next.20260320090900.6ae43a8":"2026-03-20T09:09:33.272Z","0.1.0-next.20260320091914.8b9c1e1":"2026-03-20T09:19:47.883Z","0.1.0-next.20260320092529.33db7cc":"2026-03-20T09:26:02.569Z","0.1.0-next.20260320093134.8623089":"2026-03-20T09:32:09.088Z","0.1.0-next.20260320094840.3c6e1ad":"2026-03-20T09:49:14.211Z","0.1.0-next.20260320104228.d4e2f5b":"2026-03-20T10:43:02.166Z","0.1.0-next.20260320112551.269b748":"2026-03-20T11:26:27.315Z","0.1.0-next.20260320113341.ac9b66e":"2026-03-20T11:34:15.997Z","0.1.0-next.20260320120401.3cceb96":"2026-03-20T12:04:36.478Z","0.1.0-next.20260320125828.b9505f1":"2026-03-20T12:59:02.690Z","0.1.0-next.20260320133503.5aaffc9":"2026-03-20T13:35:37.854Z","0.1.0-next.20260320134636.2863bf8":"2026-03-20T13:47:09.231Z","0.1.0-next.20260320151444.3fce1ce":"2026-03-20T15:15:16.381Z","0.1.0-next.20260320152222.0399e6b":"2026-03-20T15:22:56.072Z","0.1.0-next.20260320153001.27c38c9":"2026-03-20T15:30:35.102Z","0.1.0-next.20260320153640.d764993":"2026-03-20T15:37:11.439Z","0.1.0-next.20260320160654.13fcb8a":"2026-03-20T16:07:28.063Z","0.1.0-next.20260320164148.2893735":"2026-03-20T16:42:22.628Z","0.1.0-next.20260320170434.6fb02a5":"2026-03-20T17:05:09.682Z","0.1.0-next.20260320180141.01a5a17":"2026-03-20T18:02:19.786Z","0.1.0-next.20260320190459.a4c825a":"2026-03-20T19:05:34.716Z","0.1.0-next.20260320193451.56b9e1c":"2026-03-20T19:35:25.983Z","0.1.0-next.20260320195610.ec9d4cd":"2026-03-20T19:56:46.292Z","0.1.0-next.20260320203011.b243d90":"2026-03-20T20:30:47.707Z","0.1.0-next.20260320204051.b4b0576":"2026-03-20T20:41:26.108Z","0.1.0-next.20260320205026.f7c4622":"2026-03-20T20:50:59.656Z","0.1.0-next.20260320213644.b600a4e":"2026-03-20T21:37:19.704Z","0.1.0-next.20260320234608.eb8f1c2":"2026-03-20T23:46:42.973Z","0.1.0-next.20260321002814.4318ca0":"2026-03-21T00:28:47.210Z","0.1.0-next.20260321012531.d95299d":"2026-03-21T01:26:06.354Z","0.1.0-next.20260321021600.6c09c37":"2026-03-21T02:16:34.821Z","0.1.0-next.20260321055112.fb8d296":"2026-03-21T05:51:47.282Z","0.1.0-next.20260321061012.e2ac520":"2026-03-21T06:10:47.039Z","0.1.0-next.20260321063258.da5e5e3":"2026-03-21T06:33:33.143Z","0.1.0-next.20260321064747.d412e03":"2026-03-21T06:48:22.274Z","0.1.0-next.20260321065616.8d1dd1d":"2026-03-21T06:56:50.619Z","0.1.0-next.20260321071502.929581b":"2026-03-21T07:15:36.848Z","0.1.0-next.20260321072650.2f3005d":"2026-03-21T07:27:25.550Z","0.1.0-next.20260321074410.0d05c3b":"2026-03-21T07:44:44.918Z","0.1.0-next.20260321103328.6eac270":"2026-03-21T10:34:04.670Z","0.1.0-next.20260321133444.ff96657":"2026-03-21T13:35:18.160Z","0.1.0-next.20260321201436.28f8065":"2026-03-21T20:15:10.836Z","0.1.0-next.20260321205044.bfa0d39":"2026-03-21T20:51:17.460Z","0.1.0-next.20260321211031.58967ba":"2026-03-21T21:11:05.628Z","0.1.0-next.20260321213503.a0b7272":"2026-03-21T21:35:38.536Z","0.1.0-next.20260321220624.87abad3":"2026-03-21T22:06:59.412Z","0.1.0-next.20260321223744.99cbc59":"2026-03-21T22:38:19.107Z","0.1.0-next.20260321224419.f9f22a2":"2026-03-21T22:44:53.710Z","0.1.0-next.20260321225017.c6feeda":"2026-03-21T22:50:50.780Z","0.1.0-next.20260321225707.3b4e790":"2026-03-21T22:57:42.606Z","0.1.0-next.20260321230403.f83bb7a":"2026-03-21T23:04:38.113Z","0.1.0-next.20260321232814.1ed5a96":"2026-03-21T23:28:46.812Z","0.1.0-next.20260321233641.d5702ae":"2026-03-21T23:37:15.779Z","0.1.0-next.20260321234814.e1aa8fb":"2026-03-21T23:48:47.679Z","0.1.0-next.20260322001405.0584aff":"2026-03-22T00:14:39.774Z","0.1.0-next.20260322004514.ed4818a":"2026-03-22T00:45:50.531Z","0.1.0-next.20260322012415.ae33ad6":"2026-03-22T01:24:49.453Z","0.1.0-next.20260322015255.f778d23":"2026-03-22T01:53:29.048Z","0.1.0-next.20260322022754.0413cf1":"2026-03-22T02:28:30.501Z","0.1.0-next.20260322023757.0194a82":"2026-03-22T02:38:32.950Z","0.1.0-next.20260322033659.00a5cff":"2026-03-22T03:37:33.363Z","0.1.0-next.20260322065316.05b4c20":"2026-03-22T06:53:52.103Z","0.1.0-next.20260322070121.6bc5323":"2026-03-22T07:01:56.123Z","0.1.0-next.20260322071745.2e0e23e":"2026-03-22T07:18:20.076Z","0.1.0-next.20260322072417.30e4909":"2026-03-22T07:24:52.469Z","0.1.0-next.20260322073343.c35ed64":"2026-03-22T07:34:18.069Z","0.1.0-next.20260322074011.5a4d6f6":"2026-03-22T07:40:45.622Z","0.1.0-next.20260322075303.c0dba82":"2026-03-22T07:53:37.350Z","0.1.0-next.20260322075908.578da52":"2026-03-22T07:59:43.031Z","0.1.0-next.20260322081954.4a7c49f":"2026-03-22T08:20:28.861Z","0.1.0-next.20260322082630.7abd410":"2026-03-22T08:27:02.839Z","0.1.0-next.20260322083246.dc1eca6":"2026-03-22T08:33:21.217Z","0.1.0-next.20260322083932.8226fc5":"2026-03-22T08:40:08.084Z","0.1.0-next.20260322085108.616cd18":"2026-03-22T08:51:44.765Z","0.1.0-next.20260322085736.44b273e":"2026-03-22T08:58:07.824Z","0.1.0-next.20260322090906.c7f4fee":"2026-03-22T09:09:40.849Z","0.1.0-next.20260322101631.9227680":"2026-03-22T10:17:04.790Z","0.1.0-next.20260322105921.ab02044":"2026-03-22T10:59:55.405Z","0.1.0-next.20260322112031.d86d779":"2026-03-22T11:21:05.498Z","0.1.0-next.20260322114840.98d5fec":"2026-03-22T11:49:15.183Z","0.1.0-next.20260322122047.21c14da":"2026-03-22T12:21:23.008Z","0.1.0-next.20260322123506.a9a56dd":"2026-03-22T12:35:41.653Z","0.1.0-next.20260322124307.7cc5997":"2026-03-22T12:43:39.430Z","0.1.0-next.20260322130627.3c030fb":"2026-03-22T13:07:00.285Z","0.1.0-next.20260322131542.218c34c":"2026-03-22T13:16:16.471Z","0.1.0-next.20260322133534.eb0e2ad":"2026-03-22T13:36:08.940Z","0.1.0-next.20260322134259.d7c164c":"2026-03-22T13:43:36.117Z","0.1.0-next.20260322141544.b8d8f07":"2026-03-22T14:16:20.029Z","0.1.0-next.20260322143653.cccde0d":"2026-03-22T14:37:28.875Z","0.1.0-next.20260322144326.6025ebd":"2026-03-22T14:44:00.142Z","0.1.0-next.20260322144943.1d914c8":"2026-03-22T14:50:16.109Z","0.1.0-next.20260322151725.287e48a":"2026-03-22T15:17:58.788Z","0.1.0-next.20260322160012.aee50a6":"2026-03-22T16:00:45.676Z","0.1.0-next.20260322163335.330f22f":"2026-03-22T16:34:08.632Z","0.1.0-next.20260322165800.d1bd6f9":"2026-03-22T16:58:34.487Z","0.1.0-next.20260322193016.43af080":"2026-03-22T19:30:50.434Z","0.1.0-next.20260322200225.84f42b4":"2026-03-22T20:02:58.114Z","0.1.0-next.20260322203034.685dc54":"2026-03-22T20:31:08.847Z","0.1.0-next.20260322203824.60611ce":"2026-03-22T20:38:58.079Z","0.1.0-next.20260322204455.5cdea23":"2026-03-22T20:45:30.927Z","0.1.0-next.20260322205306.89f28a3":"2026-03-22T20:53:38.498Z","0.1.0-next.20260322205930.9d83fb7":"2026-03-22T21:00:05.482Z","0.1.0-next.20260322211545.b5e65e9":"2026-03-22T21:16:19.821Z","0.1.0-next.20260322212209.b265830":"2026-03-22T21:22:44.216Z","0.1.0-next.20260322213104.dc6bebc":"2026-03-22T21:31:41.037Z","0.1.0-next.20260322214135.777a67e":"2026-03-22T21:42:08.839Z","0.1.0-next.20260322214802.810ffc6":"2026-03-22T21:48:37.714Z","0.1.0-next.20260322222407.3901213":"2026-03-22T22:24:41.992Z","0.1.0-next.20260323093451.2340dd1":"2026-03-23T09:35:24.887Z","0.1.0-next.20260323102603.fdfbc83":"2026-03-23T10:26:37.829Z","0.1.0-next.20260323113053.96b3527":"2026-03-23T11:31:29.527Z","0.1.0-next.20260323121818.31b1d9d":"2026-03-23T12:18:53.550Z","0.1.0-next.20260323140027.6e9e913":"2026-03-23T14:01:01.641Z","0.1.0-next.20260323153827.72ca0f7":"2026-03-23T15:39:01.460Z","0.1.0-next.20260324000046.1a2092b":"2026-03-24T00:01:21.731Z","0.1.0-next.20260324004004.661db3b":"2026-03-24T00:40:40.308Z","0.1.0-next.20260324015431.907ccf6":"2026-03-24T01:55:15.614Z","0.1.0-next.20260324024919.91d9f89":"2026-03-24T02:49:53.309Z","0.1.0-next.20260324033521.b1cf1cf":"2026-03-24T03:35:56.989Z","0.1.0-next.20260324045332.a862b7c":"2026-03-24T04:54:06.390Z","0.1.0-next.20260324055454.ba8ff56":"2026-03-24T05:55:28.713Z","0.1.0-next.20260324063747.5dabe28":"2026-03-24T06:38:21.478Z","0.1.0-next.20260324072307.74a77c4":"2026-03-24T07:23:42.314Z","0.1.0-next.20260324073519.96f26e0":"2026-03-24T07:35:53.744Z","0.1.0-next.20260324093028.d50e024":"2026-03-24T09:31:05.598Z","0.1.0-next.20260324104236.79e42e2":"2026-03-24T10:43:07.844Z","0.1.0-next.20260324110331.005f09f":"2026-03-24T11:04:06.792Z","0.1.0-next.20260324113222.0fcfd5e":"2026-03-24T11:32:58.343Z","0.1.0-next.20260324123151.518b8d5":"2026-03-24T12:32:25.546Z","0.1.0-next.20260324132649.e886540":"2026-03-24T13:27:24.542Z","0.1.0-next.20260324140843.590f1cd":"2026-03-24T14:09:18.573Z","0.1.0-next.20260324145657.bafd88e":"2026-03-24T14:57:29.062Z","0.1.0-next.20260324164714.d1b5919":"2026-03-24T16:47:49.365Z","0.1.0-next.20260324190831.04fe34b":"2026-03-24T19:09:06.293Z","0.1.0-next.20260324195810.e14d3b7":"2026-03-24T19:58:44.626Z","0.1.0-next.20260324223756.f859c0f":"2026-03-24T22:38:36.034Z","0.1.0-next.20260324233217.52e32a8":"2026-03-24T23:32:50.405Z","0.1.0-next.20260325003725.0f8c544":"2026-03-25T00:38:00.226Z","0.1.0-next.20260325025809.9b17145":"2026-03-25T02:58:43.995Z","0.1.0-next.20260325043517.32b941d":"2026-03-25T04:35:52.974Z","0.1.0-next.20260325053809.45b5cbf":"2026-03-25T05:38:46.111Z","0.1.0-next.20260325062055.293b096":"2026-03-25T06:21:30.625Z","0.1.0-next.20260325071011.b459e61":"2026-03-25T07:10:47.804Z","0.1.0-next.20260325095642.ce4ee00":"2026-03-25T09:57:16.228Z","0.1.0-next.20260325121433.de7dcc3":"2026-03-25T12:15:09.171Z","0.1.0-next.20260325130050.edd186e":"2026-03-25T13:01:29.386Z","0.1.0-next.20260325134003.1f974ed":"2026-03-25T13:40:40.170Z","0.1.0-next.20260325153227.e64be55":"2026-03-25T15:33:03.816Z","0.1.0-next.20260325161016.4a995a2":"2026-03-25T16:10:53.310Z","0.1.0-next.20260325191154.117dffb":"2026-03-25T19:12:30.130Z","0.1.0-next.20260325194505.dc15534":"2026-03-25T19:45:43.322Z","0.1.0-next.20260325223558.a2277e3":"2026-03-25T22:36:34.805Z","0.1.0-next.20260325231609.3bb43bd":"2026-03-25T23:16:41.341Z","0.1.0-next.20260326013022.70001a6":"2026-03-26T01:31:05.395Z","0.1.0-next.20260326040618.600aa0e":"2026-03-26T04:06:54.444Z","0.1.0-next.20260326065034.ae489f0":"2026-03-26T06:51:06.919Z","0.1.0-next.20260326100040.b5998b1":"2026-03-26T10:01:13.753Z","0.1.0-next.20260326121358.0fdf967":"2026-03-26T12:14:31.959Z","0.1.0-next.20260326153134.3ce32e2":"2026-03-26T15:32:08.235Z","0.1.0-next.20260327092010.fceafa1":"2026-03-27T09:20:43.160Z","0.1.0-next.20260327122355.be245d6":"2026-03-27T12:24:27.312Z","0.1.0-next.20260327124440.c95ba7b":"2026-03-27T12:45:11.842Z","0.1.0-next.20260327132700.021e8e3":"2026-03-27T13:27:27.674Z","0.1.0-next.20260327145736.0ea2438":"2026-03-27T14:58:02.399Z","0.1.0-next.20260327152650.8b92154":"2026-03-27T15:27:16.428Z","0.1.0-next.20260327154440.5da697f":"2026-03-27T15:45:07.371Z","0.1.0-next.20260327172101.f848d08":"2026-03-27T17:21:26.899Z","0.1.0-next.20260328152716.b2dfbc5":"2026-03-28T15:27:42.700Z","0.1.0-next.20260328171901.f848d08":"2026-03-28T17:19:29.640Z","0.1.0-next.20260328180540.032d9eb":"2026-03-28T18:06:08.053Z","0.1.0-next.20260328212533.b968869":"2026-03-28T21:26:02.137Z","0.1.0-next.20260329072459.4b2b7ed":"2026-03-29T07:25:28.891Z","0.1.0-next.20260329080506.f8e6f80":"2026-03-29T08:05:34.770Z","0.1.0-next.20260329084915.e076b86":"2026-03-29T08:49:44.164Z","0.1.0-next.20260329105338.620c52b":"2026-03-29T10:54:06.293Z","0.1.0-next.20260329110832.94285b5":"2026-03-29T11:08:59.933Z","0.1.0-next.20260329120619.af73e07":"2026-03-29T12:06:48.010Z","0.1.0-next.20260329123035.cc8afd7":"2026-03-29T12:31:03.001Z","0.1.0-next.20260329125015.9e3b1af":"2026-03-29T12:50:43.477Z","0.1.0-next.20260329130040.fe080e9":"2026-03-29T13:01:08.995Z","0.1.0-next.20260330085817.7baf0d1":"2026-03-30T08:58:45.034Z","0.1.0-next.20260330092151.709be58":"2026-03-30T09:22:18.831Z","0.1.0-next.20260404080935.132bdc5":"2026-04-04T08:10:02.516Z","0.1.0-next.20260404081524.9dbe752":"2026-04-04T08:15:53.231Z","0.1.0-next.20260404082154.75dcb8f":"2026-04-04T08:22:20.051Z","0.1.0-next.20260404082445.616a8e2":"2026-04-04T08:25:13.251Z","0.1.0-next.20260404085735.c8d0f7c":"2026-04-04T08:58:01.441Z","0.1.0-next.20260404182747.d71ae19":"2026-04-04T18:28:15.518Z","0.1.0-next.20260405163806.e70f11e":"2026-04-05T16:38:36.446Z","0.1.0-next.20260405220210.a2c8887":"2026-04-05T22:02:38.529Z","0.1.0-next.20260405224427.0523b71":"2026-04-05T22:44:55.587Z","0.1.0-next.20260405231452.696bc0a":"2026-04-05T23:15:19.600Z","0.1.0-next.20260405235558.dff6b26":"2026-04-05T23:56:26.251Z","0.1.0-next.20260406053238.b929def":"2026-04-06T05:33:13.844Z","0.1.0-next.20260406055751.3184ac6":"2026-04-06T05:58:23.422Z","0.1.0":"2026-04-06T06:00:18.476Z","0.2.0-next.20260406062324.89b0fe5":"2026-04-06T06:23:55.532Z","0.2.0-next.20260406091347.ec9bf83":"2026-04-06T09:14:19.296Z","0.2.0-next.20260406094600.f75d656":"2026-04-06T09:46:30.738Z","0.2.0-next.20260406122156.c6c426a":"2026-04-06T12:22:29.428Z","0.2.0-next.20260406185003.9f1a03e":"2026-04-06T18:50:35.454Z","0.2.0-next.20260406202122.ba8c80a":"2026-04-06T20:21:56.720Z","0.2.0-next.20260406203913.1bc5f4b":"2026-04-06T20:39:43.320Z","0.2.0":"2026-04-06T20:40:13.263Z","0.3.0-next.20260406214510.4ae2140":"2026-04-06T21:45:42.814Z","0.3.0-next.20260406221426.47c3096":"2026-04-06T22:14:57.746Z","0.3.0-next.20260406225954.6def9ac":"2026-04-06T23:00:25.880Z","0.3.0-next.20260407093751.0ae03e7":"2026-04-07T09:38:24.702Z","0.2.1-next.20260407101947.1fb7470":"2026-04-07T10:20:19.754Z","0.2.1":"2026-04-07T10:20:52.841Z","0.3.0-next.20260407103145.5f3bf4c":"2026-04-07T10:32:12.501Z","0.3.0-next.20260407104320.26a3880":"2026-04-07T10:43:56.045Z","0.3.0-next.20260407125037.4f8bad9":"2026-04-07T12:51:10.222Z","0.3.0-next.20260408065857.fb59ee3":"2026-04-08T06:59:31.737Z","0.3.0":"2026-04-08T07:40:39.848Z","0.4.0-next.20260408075717.bf51367":"2026-04-08T07:57:51.454Z","0.4.0-next.20260408080907.3e8e47a":"2026-04-08T08:09:40.688Z","0.4.0-next.20260408083650.0fd74cc":"2026-04-08T08:37:22.728Z","0.4.0-next.20260408101815.146c958":"2026-04-08T10:18:47.724Z","0.4.0-next.20260408104301.9561c3f":"2026-04-08T10:43:35.215Z","0.4.0-next.20260408121505.f8426f9":"2026-04-08T12:15:38.508Z","0.4.0-next.20260408130130.1e1c3fb":"2026-04-08T13:02:01.515Z","0.4.0-next.20260408141538.9c6aab1":"2026-04-08T14:16:10.124Z","0.4.0-next.20260408151939.297131b":"2026-04-08T15:20:14.204Z","0.4.0-next.20260408153232.c6ab083":"2026-04-08T15:33:05.195Z","0.4.0-next.20260408155149.13bc105":"2026-04-08T15:52:25.311Z","0.4.0-next.20260408161954.d1d5a62":"2026-04-08T16:20:29.621Z","0.4.0-next.20260408164519.7bd809f":"2026-04-08T16:45:53.971Z","0.4.0-next.20260408171448.442ae54":"2026-04-08T17:15:21.185Z","0.4.0-next.20260409143610.6d51373":"2026-04-09T14:36:46.394Z","0.4.0-next.20260409145212.698866e":"2026-04-09T14:52:47.987Z","0.4.0-next.20260409153940.8b624bf":"2026-04-09T15:40:16.110Z","0.4.0-next.20260409155414.1284472":"2026-04-09T15:54:49.054Z","0.4.0":"2026-04-09T16:15:46.553Z","0.5.0-next.20260409161558.583127a":"2026-04-09T16:16:33.542Z","0.5.0-next.20260409163209.c29cd0d":"2026-04-09T16:32:44.952Z","0.5.0-next.20260409163927.328caa0":"2026-04-09T16:40:02.032Z","0.5.0-next.20260409164700.0f14415":"2026-04-09T16:47:35.342Z","0.5.0-next.20260409165534.dd55e4b":"2026-04-09T16:56:09.417Z","0.5.0-next.20260409171046.f77ec8b":"2026-04-09T17:11:20.323Z","0.5.0-next.20260409183221.3e0f3f3":"2026-04-09T18:33:01.768Z","0.5.0-next.20260409184335.3ce9f5f":"2026-04-09T18:44:09.530Z","0.5.0-next.20260410081728.1b66328":"2026-04-10T08:18:01.652Z","0.5.0-next.20260410084349.c2ef852":"2026-04-10T08:44:22.705Z","0.5.0-next.20260410091653.ade38e7":"2026-04-10T09:17:26.687Z","0.5.0-next.20260410100750.57aa9a2":"2026-04-10T10:08:24.410Z","0.5.0-next.20260410113931.4b3f6d1":"2026-04-10T11:40:05.616Z","0.5.0-next.20260410123242.b576f34":"2026-04-10T12:33:16.838Z","0.5.0-next.20260410123953.efe6d24":"2026-04-10T12:40:26.916Z","0.5.0-next.20260410124655.f1f30b5":"2026-04-10T12:47:28.522Z","0.5.0-next.20260410140538.6f59dcb":"2026-04-10T14:06:13.427Z","0.5.0-next.20260410141256.25dd250":"2026-04-10T14:13:30.880Z","0.5.0-next.20260410144652.4232c00":"2026-04-10T14:47:26.061Z","0.5.0-next.20260410145353.03eea9a":"2026-04-10T14:54:26.677Z","0.5.0-next.20260410150539.c0dc7a0":"2026-04-10T15:06:14.979Z","0.5.0-next.20260410155406.66a72ba":"2026-04-10T15:54:41.978Z","0.5.0-next.20260410160139.1fa1737":"2026-04-10T16:02:14.020Z","0.5.0-next.20260410160852.5daf644":"2026-04-10T16:09:25.912Z","0.5.0-next.20260410174545.ca39dab":"2026-04-10T17:46:20.732Z","0.5.0-next.20260410191530.7af49f3":"2026-04-10T19:16:03.753Z","0.5.0-next.20260410222839.f328c9b":"2026-04-10T22:29:12.980Z","0.5.0-next.20260410223539.ddd98f0":"2026-04-10T22:36:13.764Z","0.5.0-next.20260410224316.aa79a7f":"2026-04-10T22:43:43.980Z","0.5.0-next.20260410225422.30ab50f":"2026-04-10T22:54:54.793Z","0.5.0-next.20260410230126.5a65124":"2026-04-10T23:01:59.859Z","0.5.0-next.20260410232032.ac9587e":"2026-04-10T23:21:05.273Z","0.5.0-next.20260410232752.536e43b":"2026-04-10T23:28:27.038Z","0.5.0-next.20260410233450.27d5b65":"2026-04-10T23:35:22.300Z","0.5.0-next.20260411055300.e40b5ce":"2026-04-11T05:53:32.638Z","0.5.0-next.20260411061139.dcabba7":"2026-04-11T06:12:14.445Z","0.5.0-next.20260411061845.939b1cb":"2026-04-11T06:19:18.802Z","0.5.0-next.20260411071916.080984e":"2026-04-11T07:19:50.233Z","0.5.0-next.20260411072624.974ccd5":"2026-04-11T07:26:56.858Z","0.5.0-next.20260411083148.4fd565b":"2026-04-11T08:32:21.796Z","0.5.0-next.20260411083908.d60ca6e":"2026-04-11T08:39:42.051Z","0.5.0-next.20260411084616.17529df":"2026-04-11T08:46:48.695Z","0.5.0-next.20260411085326.caca5bb":"2026-04-11T08:53:58.627Z","0.5.0-next.20260411091123.f7e9156":"2026-04-11T09:11:57.090Z","0.5.0-next.20260411092048.f749ed3":"2026-04-11T09:21:20.799Z","0.5.0-next.20260411094630.2238b6f":"2026-04-11T09:47:04.340Z","0.5.0-next.20260411095557.593b371":"2026-04-11T09:56:29.897Z","0.5.0-next.20260411100715.7ebf27a":"2026-04-11T10:07:49.131Z","0.5.0-next.20260411101443.a4ef6be":"2026-04-11T10:15:15.940Z","0.5.0-next.20260411102259.cd6324e":"2026-04-11T10:23:32.473Z","0.5.0-next.20260411143022.e7f555c":"2026-04-11T14:30:55.821Z","0.5.0-next.20260411143745.97a49f2":"2026-04-11T14:38:18.716Z","0.5.0-next.20260411150034.76b45c3":"2026-04-11T15:01:08.728Z","0.5.0-next.20260411153452.4cd1b14":"2026-04-11T15:35:24.066Z","0.5.0-next.20260411155527.a8c7325":"2026-04-11T15:56:00.783Z","0.5.0-next.20260411161543.a82c181":"2026-04-11T16:16:15.619Z","0.5.0-next.20260411163403.f1d68f0":"2026-04-11T16:34:36.645Z","0.5.0-next.20260411185528.250363d":"2026-04-11T18:56:01.401Z","0.5.0-next.20260412043844.9ef1894":"2026-04-12T04:39:28.128Z","0.5.0-next.20260412044707.ab24eaf":"2026-04-12T04:47:50.593Z","0.5.0-next.20260412080401.e07d5d3":"2026-04-12T08:04:43.932Z","0.5.0-next.20260412141831.b6a92a3":"2026-04-12T14:19:14.201Z","0.5.0-next.20260412145630.219deac":"2026-04-12T14:57:13.037Z","0.5.0-next.20260412160820.f115223":"2026-04-12T16:09:02.756Z","0.5.0-next.20260412170140.c923443":"2026-04-12T17:02:22.550Z","0.5.0-next.20260412173320.89a7977":"2026-04-12T17:34:03.763Z","0.5.0-next.20260412180135.7549f44":"2026-04-12T18:02:18.807Z","0.5.0-next.20260412185332.ed05d16":"2026-04-12T18:54:14.639Z","0.5.0-next.20260412195431.0b31686":"2026-04-12T19:55:12.822Z","0.5.0-next.20260412204210.3885073":"2026-04-12T20:42:53.651Z","0.5.0-next.20260412232413.675e390":"2026-04-12T23:24:54.321Z","0.5.0-next.20260412233214.74026fe":"2026-04-12T23:32:54.383Z","0.5.0-next.20260413001229.e2cf15c":"2026-04-13T00:13:11.720Z","0.5.0-next.20260413002025.1e9ff20":"2026-04-13T00:21:06.315Z","0.5.0-next.20260413070921.44b4f92":"2026-04-13T07:10:02.418Z","0.5.0":"2026-04-13T10:07:27.327Z","0.6.0-next.20260413101716.4d63b18":"2026-04-13T10:17:58.337Z","0.6.0-next.20260413122412.bd16095":"2026-04-13T12:24:57.240Z","0.6.0-next.20260413123204.0aa6d97":"2026-04-13T12:32:44.084Z","0.6.0-next.20260413130639.4e924b8":"2026-04-13T13:07:20.345Z","0.6.0-next.20260414151023.2f1aec4":"2026-04-14T15:11:03.545Z","0.6.0-next.20260414153845.af4169b":"2026-04-14T15:39:26.705Z","0.6.0-next.20260414160413.4c1fbea":"2026-04-14T16:04:54.691Z","0.6.0-next.20260415133439.3a84842":"2026-04-15T13:35:20.690Z","0.6.0-next.20260415200144.3b48061":"2026-04-15T20:02:26.488Z","0.6.0-next.20260416121314.5d5658a":"2026-04-16T12:13:54.725Z","0.6.0-next.20260416130102.c61609d":"2026-04-16T13:01:42.230Z","0.6.0-next.20260416131809.4e84640":"2026-04-16T13:18:48.783Z","0.6.0-next.20260416151738.3692344":"2026-04-16T15:18:17.808Z","0.6.0-next.20260416175821.84e53de":"2026-04-16T17:59:00.253Z","0.6.0-next.20260416191046.a8374ec":"2026-04-16T19:11:26.424Z","0.6.0-next.20260417055155.bda526d":"2026-04-17T05:52:35.332Z","0.6.0-next.20260417140936.15b3db4":"2026-04-17T14:10:17.246Z","0.6.0-next.20260417144510.8d35ea6":"2026-04-17T14:45:51.457Z","0.6.0-next.20260417152737.12145fc":"2026-04-17T15:28:17.171Z","0.6.0-next.20260417162423.b805e14":"2026-04-17T16:25:03.534Z","0.6.0-next.20260417195346.a0ec36f":"2026-04-17T19:54:25.592Z","0.6.0-next.20260417211316.85a7249":"2026-04-17T21:13:55.627Z","0.6.0-next.20260417212237.b01b419":"2026-04-17T21:23:09.497Z","0.6.0-next.20260418074547.3884c89":"2026-04-18T07:46:27.722Z","0.6.0-next.20260418135615.5df49fc":"2026-04-18T13:56:47.209Z","0.6.0-next.20260418205300.2e51f00":"2026-04-18T20:53:38.435Z","0.6.0-next.20260419062830.53a5547":"2026-04-19T06:29:08.231Z","0.6.0-next.20260419065021.0507e9d":"2026-04-19T06:50:58.601Z","0.6.0-next.20260419080508.d4a01b9":"2026-04-19T08:05:47.609Z","0.6.0-next.20260419082717.2b6d0ba":"2026-04-19T08:27:56.882Z","0.6.0-next.20260419083450.c803e6e":"2026-04-19T08:35:30.023Z","0.6.0-next.20260420062753.028566c":"2026-04-20T06:28:34.214Z","0.6.0-next.20260420101116.df56d02":"2026-04-20T10:11:54.398Z","0.6.0-next.20260420111617.5922116":"2026-04-20T11:16:56.491Z","0.6.0-next.20260420140118.448a36d":"2026-04-20T14:02:01.460Z","0.6.0-next.20260421062714.511ae3a":"2026-04-21T06:27:54.195Z","0.6.0-next.20260421071307.9801df6":"2026-04-21T07:13:46.277Z","0.6.0-next.20260421082023.cd7900e":"2026-04-21T08:21:02.513Z","0.6.0-next.20260421100618.5286280":"2026-04-21T10:07:02.608Z","0.6.0-next.20260421124807.32fb155":"2026-04-21T12:48:47.577Z","0.6.0-next.20260421133219.c14b2b8":"2026-04-21T13:32:57.256Z","0.6.0-next.20260421141904.08b3a43":"2026-04-21T14:19:54.771Z","0.6.0-next.20260421155506.a7bcfd0":"2026-04-21T15:55:43.279Z","0.6.0-next.20260421163415.d75ea3d":"2026-04-21T16:34:55.376Z","0.6.0-next.20260422072612.5ec00ef":"2026-04-22T07:26:49.441Z","0.6.0-next.20260422081932.f6434b4":"2026-04-22T08:20:14.452Z","0.6.0-next.20260422101612.c49bdaf":"2026-04-22T10:16:51.628Z","0.6.0-next.20260422105534.8d0096c":"2026-04-22T10:56:12.919Z","0.6.0-next.20260422113258.7784ae7":"2026-04-22T11:33:37.816Z","0.6.0-next.20260422135203.d1a6e73":"2026-04-22T13:52:40.421Z","0.6.0-next.20260422141629.cd44294":"2026-04-22T14:17:07.695Z","0.6.0-next.20260422150057.0236c10":"2026-04-22T15:01:42.500Z","0.6.0-next.20260422151159.41ba28f":"2026-04-22T15:12:42.364Z","0.6.0-next.20260422152124.4ec7a75":"2026-04-22T15:22:04.003Z","0.6.0-next.20260422152907.d45deb1":"2026-04-22T15:29:48.625Z","0.6.0-next.20260422153647.e33220c":"2026-04-22T15:37:27.780Z","0.6.0-next.20260422161814.414a09e":"2026-04-22T16:18:52.626Z","0.6.0-next.20260422191830.41a859c":"2026-04-22T19:19:08.700Z","0.6.0-next.20260422192603.3eff332":"2026-04-22T19:26:40.327Z","0.6.0-next.20260422201030.c336848":"2026-04-22T20:11:09.312Z","0.6.0-next.20260422210221.8f07f67":"2026-04-22T21:03:00.281Z","0.6.0-next.20260422215051.9e0ae8e":"2026-04-22T21:51:31.302Z","0.6.0-next.20260422215818.7ac209a":"2026-04-22T21:58:57.748Z","0.6.0-next.20260423070133.a4233c5":"2026-04-23T07:02:14.668Z","0.6.0-next.20260423070902.4e7f32c":"2026-04-23T07:09:41.586Z","0.6.0-next.20260423132106.bb0e29a":"2026-04-23T13:21:45.318Z","0.6.0-next.20260423192956.c0698a5":"2026-04-23T19:30:35.439Z","0.6.0-next.20260423193743.7d49f34":"2026-04-23T19:38:23.239Z","0.6.0-next.20260423204115.21eda60":"2026-04-23T20:41:54.736Z","0.6.0-next.20260423204839.7c1c59e":"2026-04-23T20:49:17.272Z","0.6.0-next.20260423205610.3b44504":"2026-04-23T20:56:49.638Z","0.6.0-next.20260423215422.cfbfbe2":"2026-04-23T21:55:05.123Z","0.6.0-next.20260423223340.5133684":"2026-04-23T22:34:18.708Z","0.6.0-next.20260423224057.a31bba1":"2026-04-23T22:41:36.275Z","0.6.0-next.20260423231732.20984fb":"2026-04-23T23:18:15.486Z","0.6.0-next.20260424063236.588e946":"2026-04-24T06:33:17.775Z","0.6.0-next.20260424074947.b495ae8":"2026-04-24T07:50:25.723Z","0.6.0-next.20260424110851.50d2537":"2026-04-24T11:09:32.081Z","0.6.0-next.20260424115910.d65576b":"2026-04-24T11:59:48.513Z","0.6.0-next.20260424121738.79aa071":"2026-04-24T12:18:17.660Z","0.6.0-next.20260424122513.b13e053":"2026-04-24T12:25:52.234Z","0.6.0-next.20260424123236.80d311d":"2026-04-24T12:33:14.603Z","0.6.0-next.20260424133528.2cdc93b":"2026-04-24T13:36:07.154Z","0.6.0-next.20260424142103.2bd2fe6":"2026-04-24T14:21:41.929Z","0.6.0-next.20260424150156.c5d2cc1":"2026-04-24T15:02:37.735Z","0.6.0-next.20260424150921.7aa61e6":"2026-04-24T15:09:58.756Z","0.6.0-next.20260424151641.3dd624b":"2026-04-24T15:17:22.669Z","0.6.0-next.20260424153007.365ed93":"2026-04-24T15:30:46.142Z","0.6.0-next.20260424160557.ed860f1":"2026-04-24T16:06:38.339Z","0.6.0-next.20260424161259.16f3c9c":"2026-04-24T16:13:35.610Z","0.6.0-next.20260424183444.c56c7ba":"2026-04-24T18:35:24.433Z","0.6.0-next.20260424185639.5bd0ced":"2026-04-24T18:57:19.055Z","0.6.0-next.20260425114833.a88e5ff":"2026-04-25T11:49:14.481Z","0.6.0-next.20260425125249.0a11467":"2026-04-25T12:53:29.849Z","0.6.0-next.20260425134322.f9b6bf1":"2026-04-25T13:43:54.573Z","0.6.0-next.20260425142201.e66228c":"2026-04-25T14:22:43.728Z","0.6.0-next.20260425145536.b8ec289":"2026-04-25T14:56:17.566Z","0.6.0-next.20260425155011.23432bd":"2026-04-25T15:50:50.981Z","0.6.0-next.20260425192453.6df4660":"2026-04-25T19:25:34.604Z","0.6.0-next.20260426064501.9aabaf8":"2026-04-26T06:45:44.451Z","0.6.0-next.20260426065609.41b28ca":"2026-04-26T06:56:50.671Z","0.6.0-next.20260426070333.9105a9e":"2026-04-26T07:04:13.538Z","0.6.0-next.20260426074027.be9eaa8":"2026-04-26T07:41:05.171Z","0.6.0-next.20260426173229.31070dd":"2026-04-26T17:33:10.739Z","0.6.0-next.20260426181621.f1f8422":"2026-04-26T18:17:04.669Z","0.6.0-next.20260426185155.7f1a31e":"2026-04-26T18:52:37.821Z","0.6.0-next.20260426191657.78f74fd":"2026-04-26T19:17:36.833Z","0.6.0-next.20260426194543.8b4d314":"2026-04-26T19:46:26.630Z","0.6.0-next.20260426200251.ebb8a58":"2026-04-26T20:03:31.321Z","0.6.0-next.20260426203036.005e50b":"2026-04-26T20:31:16.570Z","0.6.0-next.20260426210006.14e1a83":"2026-04-26T21:00:47.345Z","0.6.0-next.20260426213513.ab525be":"2026-04-26T21:35:54.625Z","0.6.0-next.20260426220416.565f0a5":"2026-04-26T22:04:55.848Z","0.6.0-next.20260427062543.e1a4105":"2026-04-27T06:26:25.300Z","0.6.0-next.20260427072208.6ac05a5":"2026-04-27T07:22:48.653Z","0.6.0-next.20260427075322.5d77aae":"2026-04-27T07:54:01.564Z","0.6.0-next.20260427083844.474ae48":"2026-04-27T08:39:26.111Z","0.6.0-next.20260427091808.fbbc33c":"2026-04-27T09:18:47.937Z","0.6.0-next.20260427095510.008dda2":"2026-04-27T09:55:50.744Z","0.6.0":"2026-04-27T12:13:43.854Z","0.7.0-next.20260427125855.65dc83f":"2026-04-27T12:59:34.565Z","0.7.0-next.20260427131422.a4effc7":"2026-04-27T13:15:03.204Z","0.7.0-next.20260427144000.59270b0":"2026-04-27T14:40:43.670Z","0.7.0-next.20260427154209.04ff316":"2026-04-27T15:42:53.163Z","0.7.0-next.20260427181416.1d8ee33":"2026-04-27T18:14:57.972Z","0.7.0-next.20260427182129.491935c":"2026-04-27T18:22:12.405Z","0.7.0":"2026-04-28T06:32:44.198Z","0.8.0-next.20260428064649.0540cd9":"2026-04-28T06:47:29.533Z","0.8.0-next.20260428160150.5700f62":"2026-04-28T16:02:34.487Z","0.8.0-next.20260428164207.ed94d7f":"2026-04-28T16:42:51.261Z","0.8.0-next.20260429101127.25b0651":"2026-04-29T10:12:10.223Z","0.8.0-next.20260429102424.fefb61d":"2026-04-29T10:25:07.109Z","0.8.0-next.20260429125353.898155c":"2026-04-29T12:54:35.233Z","0.8.0-next.20260430092236.2a37248":"2026-04-30T09:23:15.320Z","0.8.0-next.20260430093017.06ab4e9":"2026-04-30T09:30:58.100Z","0.8.0-next.20260430110442.c35edf6":"2026-04-30T11:05:21.825Z","0.8.0-next.20260430111156.d87f595":"2026-04-30T11:12:36.564Z","0.8.0-next.20260430115357.a57dc2f":"2026-04-30T11:54:36.496Z","0.8.0-next.20260430120050.2228b8d":"2026-04-30T12:01:28.686Z","0.8.0-next.20260430151051.05f8ef0":"2026-04-30T15:11:32.481Z","0.8.0-next.20260430151757.ea4196e":"2026-04-30T15:18:37.230Z","0.8.0-next.20260501092722.2553067":"2026-05-01T09:28:04.472Z","0.8.0-next.20260501101319.9faac55":"2026-05-01T10:13:58.577Z","0.8.0-next.20260501191940.6b0d6d8":"2026-05-01T19:20:23.135Z","0.8.0-next.20260501192719.72ad251":"2026-05-01T19:27:59.218Z","0.8.0-next.20260501193518.1b72b76":"2026-05-01T19:35:57.002Z","0.8.0-next.20260501200932.8144ec2":"2026-05-01T20:10:18.367Z","0.8.0-next.20260501213950.69e8925":"2026-05-01T21:40:30.769Z","0.8.0-next.20260512221713.477212d":"2026-05-12T22:17:54.522Z","0.8.0-next.20260513153418.d6633bd":"2026-05-13T15:35:00.153Z","0.8.0-next.20260513154123.b7a6f28":"2026-05-13T15:42:05.377Z","0.8.0-next.20260513162550.0f07f92":"2026-05-13T16:26:33.951Z","0.8.0-next.20260514012644.12fa327":"2026-05-14T01:27:26.746Z","0.8.0-next.20260514020440.06a0345":"2026-05-14T02:05:25.146Z","0.8.0-next.20260516005955.7b18ea1":"2026-05-16T01:00:38.000Z","0.8.0-next.20260516010815.1b8b569":"2026-05-16T01:08:58.257Z","0.8.0-next.20260517063950.6c6b8c2":"2026-05-17T06:40:33.204Z","0.8.0-next.20260517113318.faeda18":"2026-05-17T11:34:04.132Z","0.8.0-next.20260517114349.3c200fe":"2026-05-17T11:44:31.316Z","0.8.0-next.20260601113131.26cd3f6":"2026-06-01T11:32:12.991Z","0.8.0-next.20260601173216.d202b54":"2026-06-01T17:32:59.728Z","0.8.0-next.20260602140056.f5aa883":"2026-06-02T14:01:40.136Z","0.8.0-next.20260602150737.b87a5de":"2026-06-02T15:08:20.526Z","0.8.0-next.20260603101202.7419541":"2026-06-03T10:12:41.557Z","0.8.0-next.20260604050227.1b1d58e":"2026-06-04T05:03:10.058Z","0.8.0-next.20260605064740.ed9ed40":"2026-06-05T06:48:21.067Z","0.8.0-next.20260606052320.2581c69":"2026-06-06T05:24:02.849Z","0.8.0-next.20260613230544.0e4a4bb":"2026-06-13T23:06:26.522Z","0.8.0-next.20260615063216.0bde17b":"2026-06-15T06:32:56.430Z","0.8.0-next.20260615072325.29f8ff9":"2026-06-15T07:24:07.205Z","0.8.0-next.20260615091222.ec14511":"2026-06-15T09:13:05.627Z","0.8.0-next.20260615094650.2cc295e":"2026-06-15T09:47:32.744Z","0.8.0-next.20260615100642.4b7a9a2":"2026-06-15T10:07:23.111Z","0.8.0-next.20260615103525.023cbdd":"2026-06-15T10:36:06.384Z","0.8.0-next.20260615111459.867df32":"2026-06-15T11:15:41.949Z","0.8.0-next.20260615113544.0e34e72":"2026-06-15T11:36:26.521Z","0.8.0-next.20260615130200.46fddc7":"2026-06-15T13:02:45.458Z","0.8.0-next.20260615141853.113742b":"2026-06-15T14:19:22.596Z","0.8.0-next.20260615142735.59ce1b7":"2026-06-15T14:28:17.108Z","0.8.0-next.20260616234137.1b2dfb3":"2026-06-16T23:42:20.923Z","0.8.0-next.20260617150654.f7cf650":"2026-06-17T15:07:37.544Z","0.8.0-next.20260617153439.8c1aa92":"2026-06-17T15:35:20.464Z","0.8.0-next.20260617193845.026da9b":"2026-06-17T19:39:28.381Z","0.8.0-next.20260618081237.adb7264":"2026-06-18T08:13:18.566Z","0.8.0-next.20260618084754.aa198e4":"2026-06-18T08:48:36.676Z","0.8.0-next.20260618093455.f762046":"2026-06-18T09:35:38.442Z","0.8.0-next.20260618103429.286d23b":"2026-06-18T10:35:12.239Z","0.8.0-next.20260618104652.029cf6a":"2026-06-18T10:47:35.320Z","0.8.0-next.20260618105436.55f9992":"2026-06-18T10:55:18.907Z","0.8.0-next.20260618110235.bfe2c09":"2026-06-18T11:03:18.995Z","0.8.0-next.20260618120925.9fe2c73":"2026-06-18T12:10:07.028Z","0.8.0-next.20260618121649.71258cf":"2026-06-18T12:17:24.219Z","0.8.0-next.20260618123057.f2f86a3":"2026-06-18T12:31:39.649Z","0.8.0-next.20260618142440.6e34bdc":"2026-06-18T14:25:13.756Z","0.8.0-next.20260618150447.dcd8baf":"2026-06-18T15:05:42.917Z","0.8.0-next.20260618153926.26697e0":"2026-06-18T15:40:12.339Z","0.8.0-next.20260619080959.ab32c42":"2026-06-19T08:10:40.873Z","0.8.0-next.20260619092535.8af2358":"2026-06-19T09:26:19.527Z","0.8.0-next.20260619111050.f48aefe":"2026-06-19T11:11:30.837Z","0.8.0-next.20260619120129.115ebed":"2026-06-19T12:02:13.954Z","0.8.0-next.20260619124824.492af59":"2026-06-19T12:49:06.360Z","0.8.0-next.20260619132112.7d5b0d5":"2026-06-19T13:21:53.754Z","0.8.0-next.20260619163931.3da037c":"2026-06-19T16:40:15.787Z","0.8.0-next.20260619171843.40d2eae":"2026-06-19T17:19:25.607Z","0.8.0-next.20260701212323.eaa1c53":"2026-07-01T21:24:06.806Z","0.8.0-next.20260702124248.5f0cc07":"2026-07-02T12:43:32.088Z","0.8.0-next.20260702125035.debdb1e":"2026-07-02T12:51:18.849Z","0.8.0-next.20260702142252.4b3da69":"2026-07-02T14:23:33.961Z","0.8.0-next.20260702175452.0871a3e":"2026-07-02T17:55:35.074Z","0.8.0-next.20260703061403.9e92f66":"2026-07-03T06:14:44.760Z","0.8.0-next.20260703080559.17294ee":"2026-07-03T08:06:43.663Z","0.8.0-next.20260703124128.6f24dcf":"2026-07-03T12:42:10.719Z","0.8.0-next.20260703140226.2cbd8e5":"2026-07-03T14:03:13.115Z","0.8.0-next.20260703144931.4f1c10d":"2026-07-03T14:50:16.147Z","0.8.0-next.20260703155411.f999c78":"2026-07-03T15:54:55.274Z","0.8.0-next.20260703195102.093bb1d":"2026-07-03T19:51:44.776Z","0.8.0-next.20260704062242.6f6bc25":"2026-07-04T06:23:24.577Z","0.8.0-next.20260704064209.9cb860a":"2026-07-04T06:42:51.040Z","0.8.0-next.20260704065031.48c8793":"2026-07-04T06:51:13.405Z","0.8.0-next.20260704065811.874b007":"2026-07-04T06:58:55.650Z","0.8.0-next.20260704070605.f57151f":"2026-07-04T07:06:47.060Z","0.8.0-next.20260704074751.fe76cd0":"2026-07-04T07:48:34.497Z","0.8.0-next.20260704075557.c812009":"2026-07-04T07:56:42.004Z","0.8.0-next.20260704080724.07b06d1":"2026-07-04T08:08:07.859Z","0.8.0-next.20260704082218.b15302f":"2026-07-04T08:23:02.037Z","0.8.0-next.20260704121249.c5d680d":"2026-07-04T12:13:33.191Z","0.8.0-next.20260704122042.7b0d62e":"2026-07-04T12:21:18.882Z","0.8.0-next.20260704123625.51e8a0f":"2026-07-04T12:37:08.622Z","0.8.0-next.20260704130141.7219ebb":"2026-07-04T13:02:23.212Z","0.8.0-next.20260704130940.6d99ddf":"2026-07-04T13:10:25.864Z","0.8.0-next.20260704131908.bc3d027":"2026-07-04T13:19:51.058Z","0.8.0-next.20260704134231.cef82f9":"2026-07-04T13:43:13.014Z","0.8.0-next.20260704164118.f26e8e7":"2026-07-04T16:41:59.587Z","0.8.0-next.20260705111321.87b4429":"2026-07-05T11:14:06.482Z","0.8.0-next.20260705134841.d96f761":"2026-07-05T13:49:23.162Z","0.8.0-next.20260706043647.cd56ae3":"2026-07-06T04:37:30.523Z","0.8.0-next.20260706052218.9822e9e":"2026-07-06T05:22:59.750Z","0.8.0-next.20260706150407.386b571":"2026-07-06T15:04:51.433Z","0.8.0-next.20260706165237.64de70a":"2026-07-06T16:53:26.369Z","0.8.0-next.20260706195010.48fda61":"2026-07-06T19:50:56.336Z","0.8.0-next.20260707113638.95a57e2":"2026-07-07T11:37:19.700Z","0.8.0-next.20260707125849.0de4574":"2026-07-07T12:59:34.210Z","0.8.0-next.20260707220556.5e19538":"2026-07-07T22:06:39.464Z","0.8.0-next.20260708065244.83b8083":"2026-07-08T06:53:27.604Z","0.8.0-next.20260708091618.bdf2b8c":"2026-07-08T09:17:03.474Z","0.8.0-next.20260708104751.5082ee5":"2026-07-08T10:48:33.815Z","0.8.0-next.20260708204309.4ecdd71":"2026-07-08T20:43:53.907Z","0.8.0-next.20260708211408.4b9f524":"2026-07-08T21:14:51.451Z","0.8.0-next.20260709055704.dd177f9":"2026-07-09T05:57:48.712Z","0.8.0-next.20260709062648.8e16b27":"2026-07-09T06:27:31.850Z","0.8.0-next.20260709072806.64e11c6":"2026-07-09T07:28:44.522Z","0.8.0-next.20260709083658.d0b21a1":"2026-07-09T08:37:42.973Z","0.8.0-next.20260709093918.ac1ea64":"2026-07-09T09:40:02.560Z","0.8.0-next.20260709190437.b4551b9":"2026-07-09T19:05:24.838Z","0.8.0-next.20260709212902.d2043be":"2026-07-09T21:29:47.349Z","0.8.0-next.20260709213746.02472bc":"2026-07-09T21:38:33.722Z","0.8.0-next.20260709221832.f87f7c9":"2026-07-09T22:19:16.747Z","0.8.0-next.20260710071725.23940d2":"2026-07-10T07:18:09.398Z","0.8.0-next.20260710103700.b3d2711":"2026-07-10T10:37:44.329Z","0.8.0-next.20260710124418.b2ba783":"2026-07-10T12:45:03.250Z","0.8.0-next.20260710164301.b8b03fb":"2026-07-10T16:43:40.339Z","0.8.0-next.20260711102706.4806c92":"2026-07-11T10:28:43.145Z","0.8.0-next.20260711113157.eea14f8":"2026-07-11T11:33:34.249Z","0.8.0-next.20260711114716.856490":"2026-07-11T11:48:54.358Z","0.8.0-next.20260711141655.7943fa8":"2026-07-11T14:18:15.172Z","0.8.0-next.20260711142718.6edf83f":"2026-07-11T14:28:54.406Z","0.8.0-next.20260711154622.ffa82ca":"2026-07-11T15:47:58.291Z","0.8.0-next.20260712000115.4155e58":"2026-07-12T00:02:54.943Z","0.8.0-next.20260712001357.a179346":"2026-07-12T00:15:36.210Z","0.8.0-next.20260712013858.8245de3":"2026-07-12T01:40:17.046Z","0.8.0-next.20260712033002.cde52cb":"2026-07-12T03:31:43.036Z","0.8.0-next.20260712075302.d140bd3":"2026-07-12T07:54:37.936Z","0.8.0-next.20260712080330.a256305":"2026-07-12T08:05:09.279Z","0.8.0-next.20260712083908.b7721e1":"2026-07-12T08:40:48.751Z","0.8.0-next.20260712090439.fcaee82":"2026-07-12T09:06:01.533Z","0.8.0-next.20260712091801.a87816d":"2026-07-12T09:19:39.453Z","0.8.0-next.20260712100210.5297701":"2026-07-12T10:03:22.366Z","0.8.0-next.20260712103511.6a17d05":"2026-07-12T10:36:35.874Z","0.8.0-next.20260712104606.5681e3c":"2026-07-12T10:47:47.970Z","0.8.0-next.20260712110804.8666a10":"2026-07-12T11:09:40.992Z","0.8.0-next.20260712111844.3205201":"2026-07-12T11:20:25.841Z","0.8.0-next.20260712112910.9332b71":"2026-07-12T11:30:46.008Z","0.8.0-next.20260712114907.1078a68":"2026-07-12T11:50:47.771Z","0.8.0-next.20260712121005.d2b05eb":"2026-07-12T12:11:23.383Z","0.8.0-next.20260712194622.33274f6":"2026-07-12T19:48:00.789Z","0.8.0-next.20260712204110.ec21875":"2026-07-12T20:42:49.395Z","0.8.0-next.20260713111707.31b1abb":"2026-07-13T11:18:49.853Z","0.8.0-next.20260713184432.75ca916":"2026-07-13T18:46:02.313Z","0.8.0-next.20260714134700.db2a144":"2026-07-14T13:48:50.187Z","0.8.0-next.20260714161223.99b09fd":"2026-07-14T16:13:48.267Z","0.8.0-next.20260714180105.44041cf":"2026-07-14T18:03:05.679Z","0.8.0-next.20260714181357.e532450":"2026-07-14T18:15:25.751Z","0.8.0-next.20260714185111.45e779c":"2026-07-14T18:52:59.161Z","0.8.0-next.20260714210008.88755e3":"2026-07-14T21:01:52.907Z","0.8.0-next.20260715090835.ef888e7":"2026-07-15T09:10:23.547Z","0.8.0-next.20260715092819.7001747":"2026-07-15T09:29:43.252Z","0.8.0-next.20260715093831.eec1ece":"2026-07-15T09:40:11.719Z","0.8.0-next.20260715102620.ea73d68":"2026-07-15T10:28:04.870Z","0.8.0-next.20260715114702.9e526fb":"2026-07-15T11:48:47.045Z","0.8.0-next.20260715121027.1aa5809":"2026-07-15T12:12:12.524Z","0.8.0-next.20260715123042.fba6160":"2026-07-15T12:32:27.314Z","0.8.0-next.20260715135646.1e3daf5":"2026-07-15T13:58:10.354Z","0.8.0-next.20260715145215.18ddc8d":"2026-07-15T14:54:01.856Z","0.8.0-next.20260715154434.0d0bb75":"2026-07-15T15:46:18.941Z","0.8.0-next.20260715160018.21c3e2a":"2026-07-15T16:01:47.703Z","0.8.0-next.20260715174755.606b8e8":"2026-07-15T17:49:39.911Z","0.8.0-next.20260715192921.bedd005":"2026-07-15T19:30:53.209Z","0.8.0-next.20260715194011.5dad076":"2026-07-15T19:42:09.428Z","0.8.0-next.20260715201830.c59bb86":"2026-07-15T20:20:15.166Z","0.8.0-next.20260715204715.5f20cc5":"2026-07-15T20:49:04.589Z","0.8.0-next.20260715205821.ce00e92":"2026-07-15T21:00:06.093Z","0.8.0-next.20260715210912.9197556":"2026-07-15T21:11:02.210Z","0.8.0-next.20260715212031.d9dfa49":"2026-07-15T21:22:16.081Z","0.8.0-next.20260715213125.484ff9b":"2026-07-15T21:33:12.534Z","0.8.0-next.20260715220045.548d7ef":"2026-07-15T22:02:17.136Z","0.8.0-next.20260715221214.534cc1c":"2026-07-15T22:14:02.696Z","0.8.0-next.20260715222611.7c3a23c":"2026-07-15T22:27:52.067Z","0.8.0-next.20260715223737.44e58d6":"2026-07-15T22:39:20.855Z","0.8.0-next.20260717080454.7b96190":"2026-07-17T08:06:38.609Z","0.8.0-next.20260717081536.1ef15b0":"2026-07-17T08:17:24.213Z","0.8.0-next.20260717082658.f4fb5fc":"2026-07-17T08:28:40.677Z","0.8.0-next.20260717084926.21a60f4":"2026-07-17T08:51:10.868Z","0.8.0-next.20260717090029.e0c544d":"2026-07-17T09:02:16.689Z","0.8.0-next.20260717091125.1d63847":"2026-07-17T09:13:12.775Z","0.8.0-next.20260717092151.c37b286":"2026-07-17T09:23:38.783Z","0.8.0-next.20260717095651.5cb16dd":"2026-07-17T09:58:36.044Z","0.8.0-next.20260717100743.a015ebe":"2026-07-17T10:09:30.382Z","0.8.0-next.20260717101827.cd4ec95":"2026-07-17T10:20:07.896Z","0.8.0-next.20260717103702.4ce8e21":"2026-07-17T10:38:50.045Z","0.8.0-next.20260717111358.e9670e4":"2026-07-17T11:15:45.488Z","0.8.0-next.20260717112445.8359c93":"2026-07-17T11:26:11.164Z","0.8.0-next.20260717113512.4485d01":"2026-07-17T11:36:56.698Z","0.8.0-next.20260717135550.28290e6":"2026-07-17T13:57:33.739Z","0.8.0-next.20260717143348.5a99753":"2026-07-17T14:35:33.350Z","0.8.0-next.20260717152336.01074ad":"2026-07-17T15:25:22.706Z","0.8.0-next.20260717215202.01cc81f":"2026-07-17T21:53:49.426Z","0.8.0-next.20260717220252.73af601":"2026-07-17T22:04:37.717Z","0.8.0-next.20260717221244.6cbdbdd":"2026-07-17T22:14:31.719Z","0.8.0-next.20260717222330.c065212":"2026-07-17T22:25:15.121Z","0.8.0-next.20260717223424.62900e4":"2026-07-17T22:36:07.712Z","0.8.0-next.20260717224604.9df8978":"2026-07-17T22:47:50.917Z","0.8.0-next.20260717225432.9dc3ae8":"2026-07-17T22:56:18.807Z","0.8.0-next.20260717230343.ae49ed7":"2026-07-17T23:05:27.890Z","0.8.0-next.20260717231839.b9b3a30":"2026-07-17T23:20:05.409Z","0.8.0-next.20260719164220.d2bd66f":"2026-07-19T16:44:09.136Z","0.8.0-next.20260722140558.5304dba":"2026-07-22T14:07:46.533Z","0.8.0-next.20260722194345.c1c9881":"2026-07-22T19:45:50.356Z","0.8.0-next.20260722203955.c1df89e":"2026-07-22T20:41:45.774Z","0.8.0-next.20260722213607.d060484":"2026-07-22T21:38:16.719Z","0.8.0-next.20260722221455.b56f43d":"2026-07-22T22:16:57.319Z","0.8.0-next.20260723054840.349f23c":"2026-07-23T05:50:33.734Z","0.8.0-next.20260723062904.22cefbf":"2026-07-23T06:31:30.154Z","0.8.0-next.20260723070545.05393c2":"2026-07-23T07:07:32.019Z","0.8.0-next.20260723072135.54b600f":"2026-07-23T07:23:36.987Z","0.8.0-next.20260723085656.48f3caf":"2026-07-23T08:58:48.579Z","0.8.0-next.20260723122032.72b3fa8":"2026-07-23T12:22:37.108Z","0.8.0-next.20260723230654.a2d972b":"2026-07-23T23:09:01.724Z","0.8.0-next.20260727064702.f7d288f":"2026-07-27T06:48:51.616Z","0.8.0-next.20260727070956.4ec0cc0":"2026-07-27T07:11:37.695Z","0.8.0-next.20260728072720.fabc377":"2026-07-28T07:29:10.325Z","0.8.0-next.20260728082625.b36fd3a":"2026-07-28T08:28:06.652Z","0.8.0-next.20260728093045.7ad812c":"2026-07-28T09:32:33.833Z","0.8.0-next.20260729005201.ce9ad88":"2026-07-29T00:53:53.062Z","0.8.0-next.20260729010110.5facad9":"2026-07-29T01:02:57.713Z","0.8.0-next.20260729034258.f7fce6c":"2026-07-29T03:44:49.013Z","0.8.0-next.20260729153127.4b26bdb":"2026-07-29T15:33:16.685Z","0.8.0-next.20260730044333.d1793cd":"2026-07-30T04:45:21.494Z","0.8.0-next.20260730045453.b00e836":"2026-07-30T04:56:42.328Z","0.8.0-next.20260730084522.860eaf2":"2026-07-30T08:47:11.707Z","0.8.0-next.20260730192831.8a7b67e":"2026-07-30T19:30:21.878Z","0.8.0-next.20260804141703.e623238":"2026-08-04T14:18:49.861Z","0.8.0-next.20260804151631.928d262":"2026-08-04T15:18:25.139Z","0.8.0-next.20260804152749.f5a7c43":"2026-08-04T15:29:41.081Z","0.8.0-next.20260804154304.cf066bc":"2026-08-04T15:44:52.829Z","0.8.0-next.20260804155417.a937576":"2026-08-04T15:56:09.403Z","0.8.0-next.20260804160534.b33160f":"2026-08-04T16:07:28.209Z","0.8.0-next.20260804182312.26d4d92":"2026-08-04T18:25:06.477Z","0.8.0-next.20260804210009.cc6a360":"2026-08-04T21:01:59.098Z","0.8.0-next.20260804211210.79b6e4d":"2026-08-04T21:14:04.194Z","0.8.0-next.20260804212327.28546f0":"2026-08-04T21:25:19.523Z","0.8.0-next.20260804213653.3237e9a":"2026-08-04T21:38:46.786Z","0.8.0-next.20260805071703.384e4e4":"2026-08-05T07:18:53.439Z","0.8.0-next.20260805102915.2715d45":"2026-08-05T10:31:05.888Z","0.8.0-next.20260805104041.38d7bac":"2026-08-05T10:42:30.766Z","0.8.0-next.20260806064352.567aded":"2026-08-06T06:45:44.953Z","0.8.0-next.20260806065233.41b2877":"2026-08-06T06:54:26.061Z","0.8.0-next.20260806070353.89b43cc":"2026-08-06T07:05:42.954Z","0.8.0-next.20260806072250.c0caa1a":"2026-08-06T07:24:20.614Z","0.8.0-next.20260806073622.b4503f0":"2026-08-06T07:38:12.949Z","0.8.0-next.20260806115809.22b745f":"2026-08-06T11:59:38.618Z","0.8.0-next.20260807142034.5c244c1":"2026-08-07T14:22:26.815Z","0.8.0-next.20260807152930.70abe66":"2026-08-07T15:31:09.811Z","0.8.0-next.20260807170056.f663e16":"2026-08-07T17:02:51.251Z","0.8.0-next.20260807180334.b7a6560":"2026-08-07T18:05:27.533Z","0.8.0-next.20260807190535.4055ed0":"2026-08-07T19:07:27.961Z","0.8.0-next.20260807194715.c93b2db":"2026-08-07T19:49:10.971Z","0.8.0-next.20260807203132.db1b88d":"2026-08-07T20:33:21.627Z","0.8.0-next.20260807204312.212b71a":"2026-08-07T20:45:04.768Z","0.8.0-next.20260807210232.aacfa89":"2026-08-07T21:04:27.384Z","0.8.0-next.20260807213040.1da3871":"2026-08-07T21:32:33.423Z","0.8.0-next.20260807214813.ca0defd":"2026-08-07T21:50:02.130Z","0.8.0-next.20260807234639.c1840ca":"2026-08-07T23:48:33.878Z","0.8.0-next.20260808000616.579803d":"2026-08-08T00:08:07.391Z","0.8.0-next.20260808005717.5035144":"2026-08-08T00:59:07.732Z","0.8.0-next.20260808015547.3371e2d":"2026-08-08T01:57:48.145Z","0.8.0-next.20260808034540.66e88e4":"2026-08-08T03:47:32.745Z","0.8.0-next.20260808051031.692d5c6":"2026-08-08T05:12:23.289Z","0.8.0-next.20260808060554.be577e5":"2026-08-08T06:07:42.172Z"},"bugs":{"url":"https://github.com/remoteclaw/remoteclaw/issues"},"license":"AGPL-3.0-only","homepage":"https://github.com/remoteclaw/remoteclaw#readme","keywords":["agent","ai","claude","codex","discord","gateway","gemini","messaging","middleware","remoteclaw","slack","telegram","whatsapp"],"repository":{"url":"git+https://github.com/remoteclaw/remoteclaw.git","type":"git"},"description":"Multi-channel AI gateway with extensible messaging integrations","maintainers":[{"name":"alexey-pelykh","email":"alexey.pelykh@gmail.com"}],"readme":"","readmeFilename":""}